tarsk 0.4.4 → 0.4.6
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/dist/index.js +447375 -37
- package/package.json +2 -2
- package/dist/agent/agent.error-utils.d.ts +0 -14
- package/dist/agent/agent.error-utils.js +0 -52
- package/dist/agent/agent.event-transformer.d.ts +0 -55
- package/dist/agent/agent.event-transformer.js +0 -175
- package/dist/agent/agent.executor.d.ts +0 -26
- package/dist/agent/agent.executor.js +0 -286
- package/dist/agent/agent.model-resolver.d.ts +0 -22
- package/dist/agent/agent.model-resolver.js +0 -67
- package/dist/agent/agent.process-manager.d.ts +0 -57
- package/dist/agent/agent.process-manager.js +0 -262
- package/dist/agent/agent.processing-state-manager.d.ts +0 -74
- package/dist/agent/agent.processing-state-manager.js +0 -87
- package/dist/agent/agent.prompt-loader.d.ts +0 -16
- package/dist/agent/agent.prompt-loader.js +0 -227
- package/dist/agent/agent.subagent-executor.d.ts +0 -35
- package/dist/agent/agent.subagent-executor.js +0 -135
- package/dist/bun/index.d.ts +0 -2
- package/dist/bun/index.js +0 -165
- package/dist/cli.d.ts +0 -3
- package/dist/cli.js +0 -22
- package/dist/core/crypto.d.ts +0 -29
- package/dist/core/crypto.js +0 -166
- package/dist/core/dev-server-cache.d.ts +0 -46
- package/dist/core/dev-server-cache.js +0 -59
- package/dist/core/env-manager.d.ts +0 -3
- package/dist/core/env-manager.js +0 -60
- package/dist/core/error-responses.d.ts +0 -61
- package/dist/core/error-responses.js +0 -64
- package/dist/core/logger.d.ts +0 -10
- package/dist/core/logger.js +0 -47
- package/dist/core/paths.d.ts +0 -22
- package/dist/core/paths.js +0 -26
- package/dist/core/random-words.d.ts +0 -18
- package/dist/core/random-words.js +0 -135
- package/dist/core/response-builder.d.ts +0 -50
- package/dist/core/response-builder.js +0 -56
- package/dist/core/route-helpers.d.ts +0 -47
- package/dist/core/route-helpers.js +0 -54
- package/dist/core/run-command-detector.d.ts +0 -26
- package/dist/core/run-command-detector.js +0 -98
- package/dist/core/stream-helper.d.ts +0 -44
- package/dist/core/stream-helper.js +0 -50
- package/dist/core/utils.d.ts +0 -43
- package/dist/core/utils.js +0 -113
- package/dist/core/validation.d.ts +0 -10
- package/dist/core/validation.js +0 -20
- package/dist/database/database.d.ts +0 -40
- package/dist/database/database.encryption.d.ts +0 -33
- package/dist/database/database.encryption.js +0 -62
- package/dist/database/database.js +0 -480
- package/dist/database/database.state.d.ts +0 -52
- package/dist/database/database.state.js +0 -119
- package/dist/database/database.test-utils.d.ts +0 -22
- package/dist/database/database.test-utils.js +0 -39
- package/dist/database/database.types.d.ts +0 -3
- package/dist/database/database.types.js +0 -2
- package/dist/features/agents/agents.manager.d.ts +0 -24
- package/dist/features/agents/agents.manager.js +0 -200
- package/dist/features/ask-user/ask-user.routes.d.ts +0 -9
- package/dist/features/ask-user/ask-user.routes.js +0 -35
- package/dist/features/chat/chat-delete.route.d.ts +0 -15
- package/dist/features/chat/chat-delete.route.js +0 -36
- package/dist/features/chat/chat-post.route.d.ts +0 -11
- package/dist/features/chat/chat-post.route.js +0 -270
- package/dist/features/chat/chat-stop.route.d.ts +0 -21
- package/dist/features/chat/chat-stop.route.js +0 -22
- package/dist/features/chat/chat-subscribe.route.d.ts +0 -9
- package/dist/features/chat/chat-subscribe.route.js +0 -71
- package/dist/features/chat/chat.routes.d.ts +0 -22
- package/dist/features/chat/chat.routes.js +0 -29
- package/dist/features/conversations/conversations-delete.route.d.ts +0 -16
- package/dist/features/conversations/conversations-delete.route.js +0 -34
- package/dist/features/conversations/conversations-get-all.route.d.ts +0 -16
- package/dist/features/conversations/conversations-get-all.route.js +0 -39
- package/dist/features/conversations/conversations-get-by-id.route.d.ts +0 -16
- package/dist/features/conversations/conversations-get-by-id.route.js +0 -38
- package/dist/features/conversations/conversations-get-deleted.route.d.ts +0 -15
- package/dist/features/conversations/conversations-get-deleted.route.js +0 -34
- package/dist/features/conversations/conversations-get-messages.route.d.ts +0 -16
- package/dist/features/conversations/conversations-get-messages.route.js +0 -49
- package/dist/features/conversations/conversations.content.d.ts +0 -28
- package/dist/features/conversations/conversations.content.js +0 -142
- package/dist/features/conversations/conversations.database.d.ts +0 -108
- package/dist/features/conversations/conversations.database.js +0 -373
- package/dist/features/conversations/conversations.manager.d.ts +0 -130
- package/dist/features/conversations/conversations.manager.js +0 -162
- package/dist/features/conversations/conversations.routes.d.ts +0 -21
- package/dist/features/conversations/conversations.routes.js +0 -38
- package/dist/features/conversations/token-usage.route.d.ts +0 -41
- package/dist/features/conversations/token-usage.route.js +0 -419
- package/dist/features/git/git-commit.route.d.ts +0 -12
- package/dist/features/git/git-commit.route.js +0 -39
- package/dist/features/git/git-create-branch.route.d.ts +0 -28
- package/dist/features/git/git-create-branch.route.js +0 -119
- package/dist/features/git/git-create-pr.route.d.ts +0 -13
- package/dist/features/git/git-create-pr.route.js +0 -50
- package/dist/features/git/git-create-repo.route.d.ts +0 -14
- package/dist/features/git/git-create-repo.route.js +0 -108
- package/dist/features/git/git-diff.route.d.ts +0 -30
- package/dist/features/git/git-diff.route.js +0 -189
- package/dist/features/git/git-fetch.route.d.ts +0 -12
- package/dist/features/git/git-fetch.route.js +0 -31
- package/dist/features/git/git-generate-commit-message.route.d.ts +0 -12
- package/dist/features/git/git-generate-commit-message.route.js +0 -76
- package/dist/features/git/git-generate-pr-info.route.d.ts +0 -13
- package/dist/features/git/git-generate-pr-info.route.js +0 -147
- package/dist/features/git/git-github-status.route.d.ts +0 -16
- package/dist/features/git/git-github-status.route.js +0 -68
- package/dist/features/git/git-log.route.d.ts +0 -17
- package/dist/features/git/git-log.route.js +0 -33
- package/dist/features/git/git-pr-status.route.d.ts +0 -15
- package/dist/features/git/git-pr-status.route.js +0 -33
- package/dist/features/git/git-pull.route.d.ts +0 -12
- package/dist/features/git/git-pull.route.js +0 -35
- package/dist/features/git/git-push.route.d.ts +0 -12
- package/dist/features/git/git-push.route.js +0 -46
- package/dist/features/git/git-status-cache.database.d.ts +0 -7
- package/dist/features/git/git-status-cache.database.js +0 -53
- package/dist/features/git/git-status.route.d.ts +0 -15
- package/dist/features/git/git-status.route.js +0 -62
- package/dist/features/git/git-sync-branch.route.d.ts +0 -4
- package/dist/features/git/git-sync-branch.route.js +0 -208
- package/dist/features/git/git-unified-status.route.d.ts +0 -30
- package/dist/features/git/git-unified-status.route.js +0 -165
- package/dist/features/git/git-username.route.d.ts +0 -3
- package/dist/features/git/git-username.route.js +0 -24
- package/dist/features/git/git.manager.d.ts +0 -139
- package/dist/features/git/git.manager.js +0 -352
- package/dist/features/git/git.routes.d.ts +0 -4
- package/dist/features/git/git.routes.js +0 -116
- package/dist/features/git/git.utils.d.ts +0 -82
- package/dist/features/git/git.utils.js +0 -1040
- package/dist/features/mcp/mcp.config.d.ts +0 -27
- package/dist/features/mcp/mcp.config.js +0 -148
- package/dist/features/mcp/mcp.manager.d.ts +0 -61
- package/dist/features/mcp/mcp.manager.js +0 -254
- package/dist/features/mcp/mcp.popular.json +0 -103
- package/dist/features/mcp/mcp.routes.d.ts +0 -13
- package/dist/features/mcp/mcp.routes.js +0 -159
- package/dist/features/mcp/mcp.types.d.ts +0 -80
- package/dist/features/mcp/mcp.types.js +0 -8
- package/dist/features/metadata/metadata.manager.d.ts +0 -126
- package/dist/features/metadata/metadata.manager.js +0 -423
- package/dist/features/models/model-info-aihubmix.d.ts +0 -25
- package/dist/features/models/model-info-aihubmix.js +0 -117
- package/dist/features/models/model-info-openrouter.d.ts +0 -25
- package/dist/features/models/model-info-openrouter.js +0 -104
- package/dist/features/models/model-info.d.ts +0 -37
- package/dist/features/models/model-info.js +0 -39
- package/dist/features/models/models-catalog.d.ts +0 -49
- package/dist/features/models/models-catalog.js +0 -80
- package/dist/features/models/models-catalog.route.d.ts +0 -43
- package/dist/features/models/models-catalog.route.js +0 -15
- package/dist/features/models/models-get-available.route.d.ts +0 -36
- package/dist/features/models/models-get-available.route.js +0 -66
- package/dist/features/models/models-get-enabled.route.d.ts +0 -33
- package/dist/features/models/models-get-enabled.route.js +0 -45
- package/dist/features/models/models-get-model-info.route.d.ts +0 -31
- package/dist/features/models/models-get-model-info.route.js +0 -84
- package/dist/features/models/models-model-disable.route.d.ts +0 -15
- package/dist/features/models/models-model-disable.route.js +0 -20
- package/dist/features/models/models-model-enable.route.d.ts +0 -13
- package/dist/features/models/models-model-enable.route.js +0 -20
- package/dist/features/models/models-provider-refresh.route.d.ts +0 -17
- package/dist/features/models/models-provider-refresh.route.js +0 -20
- package/dist/features/models/models.manager.d.ts +0 -58
- package/dist/features/models/models.manager.js +0 -138
- package/dist/features/models/models.routes.d.ts +0 -18
- package/dist/features/models/models.routes.js +0 -83
- package/dist/features/models/open-router-models.d.ts +0 -38
- package/dist/features/models/open-router-models.js +0 -73
- package/dist/features/models/openai-models.d.ts +0 -63
- package/dist/features/models/openai-models.js +0 -150
- package/dist/features/onboarding/onboarding-get-git-check.route.d.ts +0 -11
- package/dist/features/onboarding/onboarding-get-git-check.route.js +0 -28
- package/dist/features/onboarding/onboarding-get-status.route.d.ts +0 -12
- package/dist/features/onboarding/onboarding-get-status.route.js +0 -15
- package/dist/features/onboarding/onboarding-post-complete.route.d.ts +0 -12
- package/dist/features/onboarding/onboarding-post-complete.route.js +0 -15
- package/dist/features/onboarding/onboarding-post-reset.route.d.ts +0 -12
- package/dist/features/onboarding/onboarding-post-reset.route.js +0 -15
- package/dist/features/onboarding/onboarding.routes.d.ts +0 -18
- package/dist/features/onboarding/onboarding.routes.js +0 -28
- package/dist/features/project-todos/project-todos.database.d.ts +0 -38
- package/dist/features/project-todos/project-todos.database.js +0 -91
- package/dist/features/project-todos/project-todos.routes.d.ts +0 -4
- package/dist/features/project-todos/project-todos.routes.js +0 -94
- package/dist/features/projects/projects-ai-files.route.d.ts +0 -148
- package/dist/features/projects/projects-ai-files.route.js +0 -425
- package/dist/features/projects/projects-commands.route.d.ts +0 -27
- package/dist/features/projects/projects-commands.route.js +0 -39
- package/dist/features/projects/projects-create.route.d.ts +0 -19
- package/dist/features/projects/projects-create.route.js +0 -37
- package/dist/features/projects/projects-delete.route.d.ts +0 -24
- package/dist/features/projects/projects-delete.route.js +0 -34
- package/dist/features/projects/projects-get.route.d.ts +0 -47
- package/dist/features/projects/projects-get.route.js +0 -36
- package/dist/features/projects/projects-list.route.d.ts +0 -58
- package/dist/features/projects/projects-list.route.js +0 -59
- package/dist/features/projects/projects-open-folder.route.d.ts +0 -10
- package/dist/features/projects/projects-open-folder.route.js +0 -11
- package/dist/features/projects/projects-open.route.d.ts +0 -26
- package/dist/features/projects/projects-open.route.js +0 -49
- package/dist/features/projects/projects-package-scripts.route.d.ts +0 -15
- package/dist/features/projects/projects-package-scripts.route.js +0 -96
- package/dist/features/projects/projects-run-command.route.d.ts +0 -8
- package/dist/features/projects/projects-run-command.route.js +0 -21
- package/dist/features/projects/projects-run.route.d.ts +0 -51
- package/dist/features/projects/projects-run.route.js +0 -74
- package/dist/features/projects/projects-update.route.d.ts +0 -24
- package/dist/features/projects/projects-update.route.js +0 -81
- package/dist/features/projects/projects.creator.d.ts +0 -33
- package/dist/features/projects/projects.creator.js +0 -555
- package/dist/features/projects/projects.database.d.ts +0 -61
- package/dist/features/projects/projects.database.js +0 -212
- package/dist/features/projects/projects.manager.d.ts +0 -291
- package/dist/features/projects/projects.manager.js +0 -426
- package/dist/features/projects/projects.open-with.d.ts +0 -27
- package/dist/features/projects/projects.open-with.js +0 -156
- package/dist/features/projects/projects.routes.d.ts +0 -20
- package/dist/features/projects/projects.routes.js +0 -255
- package/dist/features/projects/terminal-session-manager.d.ts +0 -55
- package/dist/features/projects/terminal-session-manager.js +0 -90
- package/dist/features/providers/provider-resolver.d.ts +0 -13
- package/dist/features/providers/provider-resolver.js +0 -22
- package/dist/features/providers/providers-get-credits.route.d.ts +0 -15
- package/dist/features/providers/providers-get-credits.route.js +0 -51
- package/dist/features/providers/providers-get.route.d.ts +0 -16
- package/dist/features/providers/providers-get.route.js +0 -32
- package/dist/features/providers/providers-open-external.route.d.ts +0 -15
- package/dist/features/providers/providers-open-external.route.js +0 -49
- package/dist/features/providers/providers-post-bulk-keys.route.d.ts +0 -14
- package/dist/features/providers/providers-post-bulk-keys.route.js +0 -31
- package/dist/features/providers/providers-post-keys.route.d.ts +0 -14
- package/dist/features/providers/providers-post-keys.route.js +0 -25
- package/dist/features/providers/providers.routes.d.ts +0 -19
- package/dist/features/providers/providers.routes.js +0 -31
- package/dist/features/rules/rules-post.route.d.ts +0 -43
- package/dist/features/rules/rules-post.route.js +0 -89
- package/dist/features/rules/rules.manager.d.ts +0 -36
- package/dist/features/rules/rules.manager.js +0 -203
- package/dist/features/rules/rules.routes.d.ts +0 -12
- package/dist/features/rules/rules.routes.js +0 -13
- package/dist/features/run/run-get-running.route.d.ts +0 -15
- package/dist/features/run/run-get-running.route.js +0 -21
- package/dist/features/run/run-post-start.route.d.ts +0 -8
- package/dist/features/run/run-post-start.route.js +0 -21
- package/dist/features/run/run-post-stop.route.d.ts +0 -15
- package/dist/features/run/run-post-stop.route.js +0 -24
- package/dist/features/run/run-post-suggest.route.d.ts +0 -15
- package/dist/features/run/run-post-suggest.route.js +0 -21
- package/dist/features/run/run-put-command.route.d.ts +0 -15
- package/dist/features/run/run-put-command.route.js +0 -24
- package/dist/features/run/run.routes.d.ts +0 -19
- package/dist/features/run/run.routes.js +0 -31
- package/dist/features/scaffold/index.d.ts +0 -7
- package/dist/features/scaffold/index.js +0 -5
- package/dist/features/scaffold/scaffold-get-templates.route.d.ts +0 -27
- package/dist/features/scaffold/scaffold-get-templates.route.js +0 -17
- package/dist/features/scaffold/scaffold-post.route.d.ts +0 -8
- package/dist/features/scaffold/scaffold-post.route.js +0 -30
- package/dist/features/scaffold/scaffold.routes.d.ts +0 -10
- package/dist/features/scaffold/scaffold.routes.js +0 -16
- package/dist/features/scaffold/scaffold.runner.d.ts +0 -48
- package/dist/features/scaffold/scaffold.runner.js +0 -475
- package/dist/features/scaffold/scaffold.types.d.ts +0 -26
- package/dist/features/scaffold/scaffold.types.js +0 -5
- package/dist/features/skills/skills.activation.d.ts +0 -31
- package/dist/features/skills/skills.activation.js +0 -155
- package/dist/features/skills/skills.manager.d.ts +0 -35
- package/dist/features/skills/skills.manager.js +0 -251
- package/dist/features/slash-commands/slash-commands-delete.route.d.ts +0 -23
- package/dist/features/slash-commands/slash-commands-delete.route.js +0 -36
- package/dist/features/slash-commands/slash-commands-get.route.d.ts +0 -53
- package/dist/features/slash-commands/slash-commands-get.route.js +0 -54
- package/dist/features/slash-commands/slash-commands-post.route.d.ts +0 -39
- package/dist/features/slash-commands/slash-commands-post.route.js +0 -70
- package/dist/features/slash-commands/slash-commands-put.route.d.ts +0 -23
- package/dist/features/slash-commands/slash-commands-put.route.js +0 -36
- package/dist/features/slash-commands/slash-commands.manager.d.ts +0 -46
- package/dist/features/slash-commands/slash-commands.manager.js +0 -265
- package/dist/features/slash-commands/slash-commands.routes.d.ts +0 -13
- package/dist/features/slash-commands/slash-commands.routes.js +0 -20
- package/dist/features/threads/threads-ai-files.route.d.ts +0 -153
- package/dist/features/threads/threads-ai-files.route.js +0 -287
- package/dist/features/threads/threads-conversation-folder-path.route.d.ts +0 -14
- package/dist/features/threads/threads-conversation-folder-path.route.js +0 -23
- package/dist/features/threads/threads-create.route.d.ts +0 -22
- package/dist/features/threads/threads-create.route.js +0 -60
- package/dist/features/threads/threads-delete.route.d.ts +0 -25
- package/dist/features/threads/threads-delete.route.js +0 -35
- package/dist/features/threads/threads-files.route.d.ts +0 -15
- package/dist/features/threads/threads-files.route.js +0 -20
- package/dist/features/threads/threads-fix-comments.route.d.ts +0 -26
- package/dist/features/threads/threads-fix-comments.route.js +0 -45
- package/dist/features/threads/threads-get.route.d.ts +0 -30
- package/dist/features/threads/threads-get.route.js +0 -38
- package/dist/features/threads/threads-list.route.d.ts +0 -56
- package/dist/features/threads/threads-list.route.js +0 -58
- package/dist/features/threads/threads-messages.route.d.ts +0 -28
- package/dist/features/threads/threads-messages.route.js +0 -110
- package/dist/features/threads/threads-open.route.d.ts +0 -26
- package/dist/features/threads/threads-open.route.js +0 -62
- package/dist/features/threads/threads-select.route.d.ts +0 -25
- package/dist/features/threads/threads-select.route.js +0 -35
- package/dist/features/threads/threads-update.route.d.ts +0 -15
- package/dist/features/threads/threads-update.route.js +0 -30
- package/dist/features/threads/threads.database.d.ts +0 -68
- package/dist/features/threads/threads.database.js +0 -215
- package/dist/features/threads/threads.manager.d.ts +0 -204
- package/dist/features/threads/threads.manager.js +0 -505
- package/dist/features/threads/threads.routes.d.ts +0 -20
- package/dist/features/threads/threads.routes.js +0 -230
- package/dist/features/todos/todos.database.d.ts +0 -14
- package/dist/features/todos/todos.database.js +0 -31
- package/dist/features/updates/updates.routes.d.ts +0 -13
- package/dist/features/updates/updates.routes.js +0 -40
- package/dist/index.d.ts +0 -3
- package/dist/project-analyzer.d.ts +0 -26
- package/dist/project-analyzer.js +0 -307
- package/dist/server.d.ts +0 -12
- package/dist/server.js +0 -142
- package/dist/tools/agent-tool.d.ts +0 -49
- package/dist/tools/agent-tool.js +0 -131
- package/dist/tools/ask-user.d.ts +0 -25
- package/dist/tools/ask-user.js +0 -74
- package/dist/tools/ast-grep.d.ts +0 -28
- package/dist/tools/ast-grep.js +0 -273
- package/dist/tools/bash.d.ts +0 -33
- package/dist/tools/bash.js +0 -186
- package/dist/tools/edit-diff.d.ts +0 -24
- package/dist/tools/edit-diff.js +0 -136
- package/dist/tools/edit.d.ts +0 -28
- package/dist/tools/edit.js +0 -78
- package/dist/tools/find.d.ts +0 -31
- package/dist/tools/find.js +0 -117
- package/dist/tools/grep.d.ts +0 -37
- package/dist/tools/grep.js +0 -231
- package/dist/tools/index.d.ts +0 -93
- package/dist/tools/index.js +0 -110
- package/dist/tools/ls.d.ts +0 -31
- package/dist/tools/ls.js +0 -108
- package/dist/tools/mcp-tools.d.ts +0 -31
- package/dist/tools/mcp-tools.js +0 -59
- package/dist/tools/path-utils.d.ts +0 -14
- package/dist/tools/path-utils.js +0 -87
- package/dist/tools/read.d.ts +0 -27
- package/dist/tools/read.js +0 -86
- package/dist/tools/resolve-bin.d.ts +0 -5
- package/dist/tools/resolve-bin.js +0 -28
- package/dist/tools/shell.d.ts +0 -7
- package/dist/tools/shell.js +0 -143
- package/dist/tools/skill-reference-tool.d.ts +0 -30
- package/dist/tools/skill-reference-tool.js +0 -171
- package/dist/tools/skill-tool.d.ts +0 -33
- package/dist/tools/skill-tool.js +0 -213
- package/dist/tools/todo.d.ts +0 -20
- package/dist/tools/todo.js +0 -168
- package/dist/tools/tool-helpers.d.ts +0 -78
- package/dist/tools/tool-helpers.js +0 -109
- package/dist/tools/truncate.d.ts +0 -31
- package/dist/tools/truncate.js +0 -164
- package/dist/tools/write.d.ts +0 -21
- package/dist/tools/write.js +0 -65
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP routes for the REST API
|
|
3
|
-
*
|
|
4
|
-
* Handles all MCP-related operations:
|
|
5
|
-
* - GET /api/mcp/config?projectPath=... - Get current MCP config for a project
|
|
6
|
-
* - PUT /api/mcp/config - Save or update a server in the MCP config
|
|
7
|
-
* - DELETE /api/mcp/config/:serverName?projectPath=... - Remove a server from MCP config
|
|
8
|
-
* - GET /api/mcp/popular - List popular MCP servers
|
|
9
|
-
* - GET /api/mcp/search?q=...&limit=... - Search MCP registry
|
|
10
|
-
*/
|
|
11
|
-
import { Hono } from "hono";
|
|
12
|
-
import { readFile, writeFile, mkdir, access } from "fs/promises";
|
|
13
|
-
import { join, dirname } from "path";
|
|
14
|
-
import popularServers from "./mcp.popular.json" with { type: "json" };
|
|
15
|
-
const MCP_CONFIG_PATHS = [".agents/mcp.json", "mcp.json"];
|
|
16
|
-
async function readMCPConfig(projectPath) {
|
|
17
|
-
for (const configPath of MCP_CONFIG_PATHS) {
|
|
18
|
-
const fullPath = join(projectPath, configPath);
|
|
19
|
-
try {
|
|
20
|
-
await access(fullPath);
|
|
21
|
-
const content = await readFile(fullPath, "utf-8");
|
|
22
|
-
const config = JSON.parse(content);
|
|
23
|
-
return { config, filePath: fullPath };
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
async function writeMCPConfig(projectPath, config) {
|
|
32
|
-
// Prefer .agents/mcp.json, fall back to existing file location
|
|
33
|
-
const existing = await readMCPConfig(projectPath);
|
|
34
|
-
const targetPath = existing?.filePath ?? join(projectPath, ".agents/mcp.json");
|
|
35
|
-
await mkdir(dirname(targetPath), { recursive: true });
|
|
36
|
-
await writeFile(targetPath, JSON.stringify(config, null, 2), "utf-8");
|
|
37
|
-
}
|
|
38
|
-
export function createMCPRoutes() {
|
|
39
|
-
const router = new Hono();
|
|
40
|
-
/**
|
|
41
|
-
* GET /api/mcp/config?projectPath=...
|
|
42
|
-
* Get the current MCP configuration for a project
|
|
43
|
-
*/
|
|
44
|
-
router.get("/config", async (c) => {
|
|
45
|
-
const projectPath = c.req.query("projectPath");
|
|
46
|
-
if (!projectPath) {
|
|
47
|
-
return c.json({ error: { code: "BAD_REQUEST", message: "projectPath query parameter is required" } }, 400);
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const result = await readMCPConfig(projectPath);
|
|
51
|
-
if (!result) {
|
|
52
|
-
return c.json({ servers: {} });
|
|
53
|
-
}
|
|
54
|
-
return c.json(result.config);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
58
|
-
return c.json({ error: { code: "INTERNAL_ERROR", message } }, 500);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
/**
|
|
62
|
-
* PUT /api/mcp/config
|
|
63
|
-
* Save or update a single MCP server configuration
|
|
64
|
-
*
|
|
65
|
-
* Body: { projectPath: string, serverName: string, serverConfig: MCPServerConfig }
|
|
66
|
-
*/
|
|
67
|
-
router.put("/config", async (c) => {
|
|
68
|
-
let body;
|
|
69
|
-
try {
|
|
70
|
-
body = await c.req.json();
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
return c.json({ error: { code: "BAD_REQUEST", message: "Invalid JSON body" } }, 400);
|
|
74
|
-
}
|
|
75
|
-
const { projectPath, serverName, serverConfig } = body;
|
|
76
|
-
if (!projectPath || !serverName || !serverConfig) {
|
|
77
|
-
return c.json({
|
|
78
|
-
error: {
|
|
79
|
-
code: "BAD_REQUEST",
|
|
80
|
-
message: "projectPath, serverName, and serverConfig are required",
|
|
81
|
-
},
|
|
82
|
-
}, 400);
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
const existing = await readMCPConfig(projectPath);
|
|
86
|
-
const config = existing?.config ?? { servers: {} };
|
|
87
|
-
config.servers[serverName] = serverConfig;
|
|
88
|
-
await writeMCPConfig(projectPath, config);
|
|
89
|
-
return c.json({ success: true, message: `Server "${serverName}" saved` });
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
93
|
-
return c.json({ error: { code: "INTERNAL_ERROR", message } }, 500);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
/**
|
|
97
|
-
* DELETE /api/mcp/config/:serverName?projectPath=...
|
|
98
|
-
* Remove a server from the MCP configuration
|
|
99
|
-
*/
|
|
100
|
-
router.delete("/config/:serverName", async (c) => {
|
|
101
|
-
const serverName = c.req.param("serverName");
|
|
102
|
-
const projectPath = c.req.query("projectPath");
|
|
103
|
-
if (!projectPath) {
|
|
104
|
-
return c.json({ error: { code: "BAD_REQUEST", message: "projectPath query parameter is required" } }, 400);
|
|
105
|
-
}
|
|
106
|
-
try {
|
|
107
|
-
const existing = await readMCPConfig(projectPath);
|
|
108
|
-
if (!existing) {
|
|
109
|
-
return c.json({ error: { code: "NOT_FOUND", message: "No MCP configuration found" } }, 404);
|
|
110
|
-
}
|
|
111
|
-
if (!existing.config.servers[serverName]) {
|
|
112
|
-
return c.json({ error: { code: "NOT_FOUND", message: `Server "${serverName}" not found` } }, 404);
|
|
113
|
-
}
|
|
114
|
-
delete existing.config.servers[serverName];
|
|
115
|
-
await writeMCPConfig(projectPath, existing.config);
|
|
116
|
-
return c.json({ success: true, message: `Server "${serverName}" removed` });
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
120
|
-
return c.json({ error: { code: "INTERNAL_ERROR", message } }, 500);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
/**
|
|
124
|
-
* GET /api/mcp/popular
|
|
125
|
-
* Returns the list of popular MCP servers
|
|
126
|
-
*/
|
|
127
|
-
router.get("/popular", (c) => {
|
|
128
|
-
return c.json({ servers: popularServers });
|
|
129
|
-
});
|
|
130
|
-
/**
|
|
131
|
-
* GET /api/mcp/search?q=...&limit=...
|
|
132
|
-
* Proxies search requests to the MCP registry
|
|
133
|
-
*/
|
|
134
|
-
router.get("/search", async (c) => {
|
|
135
|
-
const q = c.req.query("q") ?? "";
|
|
136
|
-
const limit = c.req.query("limit") ?? "10";
|
|
137
|
-
try {
|
|
138
|
-
const url = `https://registry.modelcontextprotocol.io/v0/servers?search=${encodeURIComponent(q)}&limit=${encodeURIComponent(limit)}`;
|
|
139
|
-
console.log(`[MCP Search] GET ${url}`);
|
|
140
|
-
const response = await fetch(url, {
|
|
141
|
-
headers: { Accept: "application/json" },
|
|
142
|
-
});
|
|
143
|
-
if (!response.ok) {
|
|
144
|
-
console.warn(`[MCP Search] Registry returned ${response.status} ${response.statusText}`);
|
|
145
|
-
return c.json({ error: { code: "REGISTRY_ERROR", message: `Registry returned ${response.status}` } }, 502);
|
|
146
|
-
}
|
|
147
|
-
const data = await response.json();
|
|
148
|
-
console.log(`[MCP Search] Response:`, JSON.stringify(data, null, 2));
|
|
149
|
-
return c.json(data);
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
153
|
-
console.error(`[MCP Search] Fetch error:`, message);
|
|
154
|
-
return c.json({ error: { code: "FETCH_ERROR", message } }, 502);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
return router;
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=mcp.routes.js.map
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP (Model Context Protocol) type definitions
|
|
3
|
-
*
|
|
4
|
-
* This file contains type definitions specific to the MCP implementation
|
|
5
|
-
* in the Tarsk CLI, extending the shared types with implementation details.
|
|
6
|
-
*/
|
|
7
|
-
import type { AgentTool } from "@mariozechner/pi-agent-core";
|
|
8
|
-
import type { MCPServerConfig, MCPConfig, MCPTool } from "@tarsk/shared";
|
|
9
|
-
import type { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
10
|
-
/**
|
|
11
|
-
* MCP Server connection state
|
|
12
|
-
*/
|
|
13
|
-
export type MCPServerState = "disconnected" | "connecting" | "connected" | "error";
|
|
14
|
-
/**
|
|
15
|
-
* MCP Server instance with connection state and tools
|
|
16
|
-
*/
|
|
17
|
-
export interface MCPServerInstance {
|
|
18
|
-
/** Server configuration */
|
|
19
|
-
config: MCPServerConfig;
|
|
20
|
-
/** Current connection state */
|
|
21
|
-
state: MCPServerState;
|
|
22
|
-
/** Available tools from this server */
|
|
23
|
-
tools: MCPTool[];
|
|
24
|
-
/** Error message if state is 'error' */
|
|
25
|
-
error?: string;
|
|
26
|
-
/** Last modification time of the configuration file */
|
|
27
|
-
lastModified?: Date;
|
|
28
|
-
/** MCP client instance */
|
|
29
|
-
client?: Client;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* MCP Manager interface
|
|
33
|
-
*/
|
|
34
|
-
export interface MCPManager {
|
|
35
|
-
/**
|
|
36
|
-
* Load MCP configuration from file
|
|
37
|
-
* @param projectPath - Path to the project directory
|
|
38
|
-
* @returns Promise resolving to MCP configuration or null if not found
|
|
39
|
-
*/
|
|
40
|
-
loadConfig(projectPath: string): Promise<MCPConfig | null>;
|
|
41
|
-
/**
|
|
42
|
-
* Get all available MCP tools for a project
|
|
43
|
-
* @param projectPath - Path to the project directory
|
|
44
|
-
* @returns Promise resolving to array of MCP tools
|
|
45
|
-
*/
|
|
46
|
-
getTools(projectPath: string): Promise<MCPTool[]>;
|
|
47
|
-
/**
|
|
48
|
-
* Execute an MCP tool
|
|
49
|
-
* @param toolName - Name of the tool to execute
|
|
50
|
-
* @param args - Tool arguments
|
|
51
|
-
* @param projectPath - Path to the project directory
|
|
52
|
-
* @returns Promise resolving to tool execution result
|
|
53
|
-
*/
|
|
54
|
-
executeTool(toolName: string, args: Record<string, unknown>, projectPath: string): Promise<unknown>;
|
|
55
|
-
/**
|
|
56
|
-
* Check if MCP configuration needs reloading
|
|
57
|
-
* @param projectPath - Path to the project directory
|
|
58
|
-
* @returns Promise resolving to true if configuration needs reloading
|
|
59
|
-
*/
|
|
60
|
-
needsReload(projectPath: string): Promise<boolean>;
|
|
61
|
-
/**
|
|
62
|
-
* Clear cached configuration for a project
|
|
63
|
-
* @param projectPath - Path to the project directory
|
|
64
|
-
*/
|
|
65
|
-
clearCache(projectPath: string): void;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* MCP Tool wrapper for Pi Agent integration
|
|
69
|
-
*/
|
|
70
|
-
export interface MCPToolWrapper extends AgentTool<any> {
|
|
71
|
-
/** Name of the MCP server that provides this tool */
|
|
72
|
-
serverName: string;
|
|
73
|
-
/** Original MCP tool definition */
|
|
74
|
-
mcpTool: MCPTool;
|
|
75
|
-
/** Tool parameters schema */
|
|
76
|
-
parameters: any;
|
|
77
|
-
/** Tool label for display */
|
|
78
|
-
label: string;
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=mcp.types.d.ts.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP (Model Context Protocol) type definitions
|
|
3
|
-
*
|
|
4
|
-
* This file contains type definitions specific to the MCP implementation
|
|
5
|
-
* in the Tarsk CLI, extending the shared types with implementation details.
|
|
6
|
-
*/
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=mcp.types.js.map
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MetadataManager handles persistence of project and thread metadata
|
|
3
|
-
*
|
|
4
|
-
* This manager provides SQLite-based storage with atomic transactions
|
|
5
|
-
* to ensure data consistency.
|
|
6
|
-
*/
|
|
7
|
-
import { Project, Thread } from "@tarsk/shared";
|
|
8
|
-
/**
|
|
9
|
-
* MetadataManager manages persistence of projects and threads
|
|
10
|
-
*/
|
|
11
|
-
interface AppState {
|
|
12
|
-
selectedThreadId: string | null;
|
|
13
|
-
providerKeys: Record<string, string>;
|
|
14
|
-
enabledModels: Record<string, string[]>;
|
|
15
|
-
onboardingCompleted: boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare class MetadataManager {
|
|
18
|
-
private db;
|
|
19
|
-
/**
|
|
20
|
-
* Create a new MetadataManager
|
|
21
|
-
* @param _dataDir - Directory where metadata files will be stored
|
|
22
|
-
* (e.g. ~/Library/Application Support/Tarsk/data)
|
|
23
|
-
*/
|
|
24
|
-
constructor(_dataDir: string);
|
|
25
|
-
/**
|
|
26
|
-
* Initialize metadata database
|
|
27
|
-
*/
|
|
28
|
-
initialize(): Promise<void>;
|
|
29
|
-
/**
|
|
30
|
-
* Save projects to database using atomic transaction
|
|
31
|
-
* @param projects - Array of projects to save
|
|
32
|
-
*/
|
|
33
|
-
saveProjects(projects: Project[]): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Load projects from database
|
|
36
|
-
* @returns Array of projects
|
|
37
|
-
*/
|
|
38
|
-
loadProjects(): Promise<Project[]>;
|
|
39
|
-
/**
|
|
40
|
-
* Save threads to database using atomic transaction
|
|
41
|
-
* @param threads - Array of threads to save
|
|
42
|
-
*/
|
|
43
|
-
saveThreads(threads: Thread[]): Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Load threads from database
|
|
46
|
-
* @returns Array of threads
|
|
47
|
-
*/
|
|
48
|
-
loadThreads(): Promise<Thread[]>;
|
|
49
|
-
/**
|
|
50
|
-
* Save application state to database
|
|
51
|
-
* @param state - Application state to save
|
|
52
|
-
*/
|
|
53
|
-
saveState(state: AppState): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Load application state from database
|
|
56
|
-
* @returns Application state
|
|
57
|
-
*/
|
|
58
|
-
loadState(): Promise<AppState>;
|
|
59
|
-
/**
|
|
60
|
-
* Update all provider keys at once
|
|
61
|
-
* @param keys - Object mapping provider names to API keys
|
|
62
|
-
*/
|
|
63
|
-
saveAllProviderKeys(keys: Record<string, string>): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Update provider keys
|
|
66
|
-
* @param providerName - Name of the provider
|
|
67
|
-
* @param apiKey - API key to save (will be encrypted if not already)
|
|
68
|
-
*/
|
|
69
|
-
saveProviderKey(providerName: string, apiKey: string): Promise<void>;
|
|
70
|
-
/**
|
|
71
|
-
* Get all provider keys
|
|
72
|
-
* @returns Record of provider names to decrypted API keys
|
|
73
|
-
*/
|
|
74
|
-
getProviderKeys(): Promise<Record<string, string>>;
|
|
75
|
-
/**
|
|
76
|
-
* Set the selected thread ID
|
|
77
|
-
* @param threadId - Thread ID to select (or null to deselect)
|
|
78
|
-
*/
|
|
79
|
-
setSelectedThread(threadId: string | null): Promise<void>;
|
|
80
|
-
/**
|
|
81
|
-
* Get the selected thread ID
|
|
82
|
-
* @returns The selected thread ID or null
|
|
83
|
-
*/
|
|
84
|
-
getSelectedThread(): Promise<string | null>;
|
|
85
|
-
/**
|
|
86
|
-
* Enable a model for a provider
|
|
87
|
-
* @param provider - Provider name
|
|
88
|
-
* @param modelId - Model ID to enable
|
|
89
|
-
*/
|
|
90
|
-
enableModel(provider: string, modelId: string): Promise<void>;
|
|
91
|
-
/**
|
|
92
|
-
* Disable a model for a provider
|
|
93
|
-
* @param provider - Provider name
|
|
94
|
-
* @param modelId - Model ID to disable
|
|
95
|
-
*/
|
|
96
|
-
disableModel(provider: string, modelId: string): Promise<void>;
|
|
97
|
-
/**
|
|
98
|
-
* Get enabled models for a provider
|
|
99
|
-
* @param provider - Provider name
|
|
100
|
-
* @returns Array of enabled model IDs
|
|
101
|
-
*/
|
|
102
|
-
getEnabledModels(provider: string): Promise<string[]>;
|
|
103
|
-
/**
|
|
104
|
-
* Get all enabled models across all providers
|
|
105
|
-
* @returns Object mapping provider to array of model IDs
|
|
106
|
-
*/
|
|
107
|
-
getAllEnabledModels(): Promise<Record<string, string[]>>;
|
|
108
|
-
/**
|
|
109
|
-
* Set enabled models for a provider
|
|
110
|
-
* @param provider - Provider name
|
|
111
|
-
* @param modelIds - Array of model IDs to enable
|
|
112
|
-
*/
|
|
113
|
-
setEnabledModels(provider: string, modelIds: string[]): Promise<void>;
|
|
114
|
-
/**
|
|
115
|
-
* Set onboarding completed flag
|
|
116
|
-
* @param completed - Whether onboarding is completed
|
|
117
|
-
*/
|
|
118
|
-
setOnboardingCompleted(completed: boolean): Promise<void>;
|
|
119
|
-
/**
|
|
120
|
-
* Get onboarding completed flag
|
|
121
|
-
* @returns Whether onboarding has been completed
|
|
122
|
-
*/
|
|
123
|
-
getOnboardingCompleted(): Promise<boolean>;
|
|
124
|
-
}
|
|
125
|
-
export {};
|
|
126
|
-
//# sourceMappingURL=metadata.manager.d.ts.map
|