tarsk 0.3.43 → 0.4.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 +1 -1
- package/dist/agent/agent.error-utils.d.ts +14 -0
- package/dist/agent/agent.error-utils.js +52 -0
- package/dist/agent/agent.event-transformer.d.ts +55 -0
- package/dist/agent/agent.event-transformer.js +175 -0
- package/dist/agent/agent.executor.d.ts +26 -0
- package/dist/agent/agent.executor.js +286 -0
- package/dist/agent/agent.model-resolver.d.ts +22 -0
- package/dist/agent/agent.model-resolver.js +67 -0
- package/dist/agent/agent.process-manager.d.ts +57 -0
- package/dist/agent/agent.process-manager.js +262 -0
- package/dist/agent/agent.processing-state-manager.d.ts +74 -0
- package/dist/agent/agent.processing-state-manager.js +87 -0
- package/dist/agent/agent.prompt-loader.d.ts +16 -0
- package/dist/agent/agent.prompt-loader.js +227 -0
- package/dist/agent/agent.subagent-executor.d.ts +35 -0
- package/dist/agent/agent.subagent-executor.js +135 -0
- package/dist/bun/index.d.ts +2 -0
- package/dist/bun/index.js +165 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +22 -0
- package/dist/core/crypto.d.ts +29 -0
- package/dist/core/crypto.js +166 -0
- package/dist/core/dev-server-cache.d.ts +46 -0
- package/dist/core/dev-server-cache.js +59 -0
- package/dist/core/env-manager.d.ts +3 -0
- package/dist/core/env-manager.js +60 -0
- package/dist/core/error-responses.d.ts +61 -0
- package/dist/core/error-responses.js +64 -0
- package/dist/core/logger.d.ts +10 -0
- package/dist/core/logger.js +47 -0
- package/dist/core/paths.d.ts +22 -0
- package/dist/core/paths.js +26 -0
- package/dist/core/random-words.d.ts +18 -0
- package/dist/core/random-words.js +135 -0
- package/dist/core/response-builder.d.ts +50 -0
- package/dist/core/response-builder.js +56 -0
- package/dist/core/route-helpers.d.ts +47 -0
- package/dist/core/route-helpers.js +54 -0
- package/dist/core/run-command-detector.d.ts +26 -0
- package/dist/core/run-command-detector.js +98 -0
- package/dist/core/stream-helper.d.ts +44 -0
- package/dist/core/stream-helper.js +50 -0
- package/dist/core/utils.d.ts +43 -0
- package/dist/core/utils.js +113 -0
- package/dist/core/validation.d.ts +10 -0
- package/dist/core/validation.js +20 -0
- package/dist/database/database.d.ts +40 -0
- package/dist/database/database.encryption.d.ts +33 -0
- package/dist/database/database.encryption.js +62 -0
- package/dist/database/database.js +480 -0
- package/dist/database/database.state.d.ts +52 -0
- package/dist/database/database.state.js +119 -0
- package/dist/database/database.test-utils.d.ts +22 -0
- package/dist/database/database.test-utils.js +39 -0
- package/dist/database/database.types.d.ts +3 -0
- package/dist/database/database.types.js +2 -0
- package/dist/features/agents/agents.manager.d.ts +24 -0
- package/dist/features/agents/agents.manager.js +200 -0
- package/dist/features/ask-user/ask-user.routes.d.ts +9 -0
- package/dist/features/ask-user/ask-user.routes.js +35 -0
- package/dist/features/chat/chat-delete.route.d.ts +15 -0
- package/dist/features/chat/chat-delete.route.js +36 -0
- package/dist/features/chat/chat-post.route.d.ts +11 -0
- package/dist/features/chat/chat-post.route.js +270 -0
- package/dist/features/chat/chat-stop.route.d.ts +21 -0
- package/dist/features/chat/chat-stop.route.js +22 -0
- package/dist/features/chat/chat-subscribe.route.d.ts +9 -0
- package/dist/features/chat/chat-subscribe.route.js +71 -0
- package/dist/features/chat/chat.routes.d.ts +22 -0
- package/dist/features/chat/chat.routes.js +29 -0
- package/dist/features/conversations/conversations-delete.route.d.ts +16 -0
- package/dist/features/conversations/conversations-delete.route.js +34 -0
- package/dist/features/conversations/conversations-get-all.route.d.ts +16 -0
- package/dist/features/conversations/conversations-get-all.route.js +39 -0
- package/dist/features/conversations/conversations-get-by-id.route.d.ts +16 -0
- package/dist/features/conversations/conversations-get-by-id.route.js +38 -0
- package/dist/features/conversations/conversations-get-deleted.route.d.ts +15 -0
- package/dist/features/conversations/conversations-get-deleted.route.js +34 -0
- package/dist/features/conversations/conversations-get-messages.route.d.ts +16 -0
- package/dist/features/conversations/conversations-get-messages.route.js +49 -0
- package/dist/features/conversations/conversations.content.d.ts +28 -0
- package/dist/features/conversations/conversations.content.js +142 -0
- package/dist/features/conversations/conversations.database.d.ts +108 -0
- package/dist/features/conversations/conversations.database.js +373 -0
- package/dist/features/conversations/conversations.manager.d.ts +130 -0
- package/dist/features/conversations/conversations.manager.js +162 -0
- package/dist/features/conversations/conversations.routes.d.ts +21 -0
- package/dist/features/conversations/conversations.routes.js +38 -0
- package/dist/features/conversations/token-usage.route.d.ts +41 -0
- package/dist/features/conversations/token-usage.route.js +419 -0
- package/dist/features/git/git-commit.route.d.ts +12 -0
- package/dist/features/git/git-commit.route.js +39 -0
- package/dist/features/git/git-create-branch.route.d.ts +28 -0
- package/dist/features/git/git-create-branch.route.js +119 -0
- package/dist/features/git/git-create-pr.route.d.ts +13 -0
- package/dist/features/git/git-create-pr.route.js +50 -0
- package/dist/features/git/git-create-repo.route.d.ts +14 -0
- package/dist/features/git/git-create-repo.route.js +108 -0
- package/dist/features/git/git-diff.route.d.ts +30 -0
- package/dist/features/git/git-diff.route.js +189 -0
- package/dist/features/git/git-fetch.route.d.ts +12 -0
- package/dist/features/git/git-fetch.route.js +31 -0
- package/dist/features/git/git-generate-commit-message.route.d.ts +12 -0
- package/dist/features/git/git-generate-commit-message.route.js +76 -0
- package/dist/features/git/git-generate-pr-info.route.d.ts +13 -0
- package/dist/features/git/git-generate-pr-info.route.js +147 -0
- package/dist/features/git/git-github-status.route.d.ts +16 -0
- package/dist/features/git/git-github-status.route.js +68 -0
- package/dist/features/git/git-log.route.d.ts +17 -0
- package/dist/features/git/git-log.route.js +33 -0
- package/dist/features/git/git-pr-status.route.d.ts +15 -0
- package/dist/features/git/git-pr-status.route.js +33 -0
- package/dist/features/git/git-pull.route.d.ts +12 -0
- package/dist/features/git/git-pull.route.js +35 -0
- package/dist/features/git/git-push.route.d.ts +12 -0
- package/dist/features/git/git-push.route.js +46 -0
- package/dist/features/git/git-status-cache.database.d.ts +7 -0
- package/dist/features/git/git-status-cache.database.js +53 -0
- package/dist/features/git/git-status.route.d.ts +15 -0
- package/dist/features/git/git-status.route.js +62 -0
- package/dist/features/git/git-sync-branch.route.d.ts +4 -0
- package/dist/features/git/git-sync-branch.route.js +208 -0
- package/dist/features/git/git-unified-status.route.d.ts +30 -0
- package/dist/features/git/git-unified-status.route.js +165 -0
- package/dist/features/git/git-username.route.d.ts +3 -0
- package/dist/features/git/git-username.route.js +24 -0
- package/dist/features/git/git.manager.d.ts +139 -0
- package/dist/features/git/git.manager.js +352 -0
- package/dist/features/git/git.routes.d.ts +4 -0
- package/dist/features/git/git.routes.js +116 -0
- package/dist/features/git/git.utils.d.ts +82 -0
- package/dist/features/git/git.utils.js +1040 -0
- package/dist/features/mcp/mcp.config.d.ts +27 -0
- package/dist/features/mcp/mcp.config.js +148 -0
- package/dist/features/mcp/mcp.manager.d.ts +61 -0
- package/dist/features/mcp/mcp.manager.js +254 -0
- package/dist/features/mcp/mcp.popular.json +103 -0
- package/dist/features/mcp/mcp.routes.d.ts +13 -0
- package/dist/features/mcp/mcp.routes.js +159 -0
- package/dist/features/mcp/mcp.types.d.ts +80 -0
- package/dist/features/mcp/mcp.types.js +8 -0
- package/dist/features/metadata/metadata.manager.d.ts +126 -0
- package/dist/features/metadata/metadata.manager.js +423 -0
- package/dist/features/models/model-info-aihubmix.d.ts +25 -0
- package/dist/features/models/model-info-aihubmix.js +117 -0
- package/dist/features/models/model-info-openrouter.d.ts +25 -0
- package/dist/features/models/model-info-openrouter.js +104 -0
- package/dist/features/models/model-info.d.ts +37 -0
- package/dist/features/models/model-info.js +39 -0
- package/dist/features/models/models-catalog.d.ts +49 -0
- package/dist/features/models/models-catalog.js +80 -0
- package/dist/features/models/models-catalog.route.d.ts +43 -0
- package/dist/features/models/models-catalog.route.js +15 -0
- package/dist/features/models/models-get-available.route.d.ts +36 -0
- package/dist/features/models/models-get-available.route.js +66 -0
- package/dist/features/models/models-get-enabled.route.d.ts +33 -0
- package/dist/features/models/models-get-enabled.route.js +45 -0
- package/dist/features/models/models-get-model-info.route.d.ts +31 -0
- package/dist/features/models/models-get-model-info.route.js +84 -0
- package/dist/features/models/models-model-disable.route.d.ts +15 -0
- package/dist/features/models/models-model-disable.route.js +20 -0
- package/dist/features/models/models-model-enable.route.d.ts +13 -0
- package/dist/features/models/models-model-enable.route.js +20 -0
- package/dist/features/models/models-provider-refresh.route.d.ts +17 -0
- package/dist/features/models/models-provider-refresh.route.js +20 -0
- package/dist/features/models/models.manager.d.ts +58 -0
- package/dist/features/models/models.manager.js +138 -0
- package/dist/features/models/models.routes.d.ts +18 -0
- package/dist/features/models/models.routes.js +83 -0
- package/dist/features/models/open-router-models.d.ts +38 -0
- package/dist/features/models/open-router-models.js +73 -0
- package/dist/features/models/openai-models.d.ts +63 -0
- package/dist/features/models/openai-models.js +150 -0
- package/dist/features/onboarding/onboarding-get-git-check.route.d.ts +11 -0
- package/dist/features/onboarding/onboarding-get-git-check.route.js +28 -0
- package/dist/features/onboarding/onboarding-get-status.route.d.ts +12 -0
- package/dist/features/onboarding/onboarding-get-status.route.js +15 -0
- package/dist/features/onboarding/onboarding-post-complete.route.d.ts +12 -0
- package/dist/features/onboarding/onboarding-post-complete.route.js +15 -0
- package/dist/features/onboarding/onboarding-post-reset.route.d.ts +12 -0
- package/dist/features/onboarding/onboarding-post-reset.route.js +15 -0
- package/dist/features/onboarding/onboarding.routes.d.ts +18 -0
- package/dist/features/onboarding/onboarding.routes.js +28 -0
- package/dist/features/project-todos/project-todos.database.d.ts +38 -0
- package/dist/features/project-todos/project-todos.database.js +91 -0
- package/dist/features/project-todos/project-todos.routes.d.ts +4 -0
- package/dist/features/project-todos/project-todos.routes.js +94 -0
- package/dist/features/projects/projects-ai-files.route.d.ts +148 -0
- package/dist/features/projects/projects-ai-files.route.js +425 -0
- package/dist/features/projects/projects-commands.route.d.ts +27 -0
- package/dist/features/projects/projects-commands.route.js +39 -0
- package/dist/features/projects/projects-create.route.d.ts +19 -0
- package/dist/features/projects/projects-create.route.js +37 -0
- package/dist/features/projects/projects-delete.route.d.ts +24 -0
- package/dist/features/projects/projects-delete.route.js +34 -0
- package/dist/features/projects/projects-get.route.d.ts +47 -0
- package/dist/features/projects/projects-get.route.js +36 -0
- package/dist/features/projects/projects-list.route.d.ts +58 -0
- package/dist/features/projects/projects-list.route.js +59 -0
- package/dist/features/projects/projects-open-folder.route.d.ts +10 -0
- package/dist/features/projects/projects-open-folder.route.js +11 -0
- package/dist/features/projects/projects-open.route.d.ts +26 -0
- package/dist/features/projects/projects-open.route.js +49 -0
- package/dist/features/projects/projects-package-scripts.route.d.ts +15 -0
- package/dist/features/projects/projects-package-scripts.route.js +96 -0
- package/dist/features/projects/projects-run-command.route.d.ts +8 -0
- package/dist/features/projects/projects-run-command.route.js +21 -0
- package/dist/features/projects/projects-run.route.d.ts +51 -0
- package/dist/features/projects/projects-run.route.js +74 -0
- package/dist/features/projects/projects-update.route.d.ts +24 -0
- package/dist/features/projects/projects-update.route.js +81 -0
- package/dist/features/projects/projects.creator.d.ts +33 -0
- package/dist/features/projects/projects.creator.js +555 -0
- package/dist/features/projects/projects.database.d.ts +61 -0
- package/dist/features/projects/projects.database.js +212 -0
- package/dist/features/projects/projects.manager.d.ts +291 -0
- package/dist/features/projects/projects.manager.js +426 -0
- package/dist/features/projects/projects.open-with.d.ts +27 -0
- package/dist/features/projects/projects.open-with.js +156 -0
- package/dist/features/projects/projects.routes.d.ts +20 -0
- package/dist/features/projects/projects.routes.js +255 -0
- package/dist/features/projects/terminal-session-manager.d.ts +55 -0
- package/dist/features/projects/terminal-session-manager.js +90 -0
- package/dist/features/providers/provider-resolver.d.ts +13 -0
- package/dist/features/providers/provider-resolver.js +22 -0
- package/dist/features/providers/providers-get-credits.route.d.ts +15 -0
- package/dist/features/providers/providers-get-credits.route.js +51 -0
- package/dist/features/providers/providers-get.route.d.ts +16 -0
- package/dist/features/providers/providers-get.route.js +32 -0
- package/dist/features/providers/providers-open-external.route.d.ts +15 -0
- package/dist/features/providers/providers-open-external.route.js +49 -0
- package/dist/features/providers/providers-post-bulk-keys.route.d.ts +14 -0
- package/dist/features/providers/providers-post-bulk-keys.route.js +31 -0
- package/dist/features/providers/providers-post-keys.route.d.ts +14 -0
- package/dist/features/providers/providers-post-keys.route.js +25 -0
- package/dist/features/providers/providers.routes.d.ts +19 -0
- package/dist/features/providers/providers.routes.js +31 -0
- package/dist/features/rules/rules-post.route.d.ts +43 -0
- package/dist/features/rules/rules-post.route.js +89 -0
- package/dist/features/rules/rules.manager.d.ts +36 -0
- package/dist/features/rules/rules.manager.js +203 -0
- package/dist/features/rules/rules.routes.d.ts +12 -0
- package/dist/features/rules/rules.routes.js +13 -0
- package/dist/features/run/run-get-running.route.d.ts +15 -0
- package/dist/features/run/run-get-running.route.js +21 -0
- package/dist/features/run/run-post-start.route.d.ts +8 -0
- package/dist/features/run/run-post-start.route.js +21 -0
- package/dist/features/run/run-post-stop.route.d.ts +15 -0
- package/dist/features/run/run-post-stop.route.js +24 -0
- package/dist/features/run/run-post-suggest.route.d.ts +15 -0
- package/dist/features/run/run-post-suggest.route.js +21 -0
- package/dist/features/run/run-put-command.route.d.ts +15 -0
- package/dist/features/run/run-put-command.route.js +24 -0
- package/dist/features/run/run.routes.d.ts +19 -0
- package/dist/features/run/run.routes.js +31 -0
- package/dist/features/scaffold/index.d.ts +7 -0
- package/dist/features/scaffold/index.js +5 -0
- package/dist/features/scaffold/scaffold-get-templates.route.d.ts +27 -0
- package/dist/features/scaffold/scaffold-get-templates.route.js +17 -0
- package/dist/features/scaffold/scaffold-post.route.d.ts +8 -0
- package/dist/features/scaffold/scaffold-post.route.js +30 -0
- package/dist/features/scaffold/scaffold.routes.d.ts +10 -0
- package/dist/features/scaffold/scaffold.routes.js +16 -0
- package/dist/features/scaffold/scaffold.runner.d.ts +48 -0
- package/dist/features/scaffold/scaffold.runner.js +475 -0
- package/dist/features/scaffold/scaffold.types.d.ts +26 -0
- package/dist/features/scaffold/scaffold.types.js +5 -0
- package/dist/features/skills/skills.activation.d.ts +31 -0
- package/dist/features/skills/skills.activation.js +155 -0
- package/dist/features/skills/skills.manager.d.ts +35 -0
- package/dist/features/skills/skills.manager.js +251 -0
- package/dist/features/slash-commands/slash-commands-delete.route.d.ts +23 -0
- package/dist/features/slash-commands/slash-commands-delete.route.js +36 -0
- package/dist/features/slash-commands/slash-commands-get.route.d.ts +53 -0
- package/dist/features/slash-commands/slash-commands-get.route.js +54 -0
- package/dist/features/slash-commands/slash-commands-post.route.d.ts +39 -0
- package/dist/features/slash-commands/slash-commands-post.route.js +70 -0
- package/dist/features/slash-commands/slash-commands-put.route.d.ts +23 -0
- package/dist/features/slash-commands/slash-commands-put.route.js +36 -0
- package/dist/features/slash-commands/slash-commands.manager.d.ts +46 -0
- package/dist/features/slash-commands/slash-commands.manager.js +265 -0
- package/dist/features/slash-commands/slash-commands.routes.d.ts +13 -0
- package/dist/features/slash-commands/slash-commands.routes.js +20 -0
- package/dist/features/threads/threads-ai-files.route.d.ts +153 -0
- package/dist/features/threads/threads-ai-files.route.js +287 -0
- package/dist/features/threads/threads-conversation-folder-path.route.d.ts +14 -0
- package/dist/features/threads/threads-conversation-folder-path.route.js +23 -0
- package/dist/features/threads/threads-create.route.d.ts +22 -0
- package/dist/features/threads/threads-create.route.js +60 -0
- package/dist/features/threads/threads-delete.route.d.ts +25 -0
- package/dist/features/threads/threads-delete.route.js +35 -0
- package/dist/features/threads/threads-files.route.d.ts +15 -0
- package/dist/features/threads/threads-files.route.js +20 -0
- package/dist/features/threads/threads-fix-comments.route.d.ts +26 -0
- package/dist/features/threads/threads-fix-comments.route.js +45 -0
- package/dist/features/threads/threads-get.route.d.ts +30 -0
- package/dist/features/threads/threads-get.route.js +38 -0
- package/dist/features/threads/threads-list.route.d.ts +56 -0
- package/dist/features/threads/threads-list.route.js +58 -0
- package/dist/features/threads/threads-messages.route.d.ts +28 -0
- package/dist/features/threads/threads-messages.route.js +110 -0
- package/dist/features/threads/threads-open.route.d.ts +26 -0
- package/dist/features/threads/threads-open.route.js +62 -0
- package/dist/features/threads/threads-select.route.d.ts +25 -0
- package/dist/features/threads/threads-select.route.js +35 -0
- package/dist/features/threads/threads-update.route.d.ts +15 -0
- package/dist/features/threads/threads-update.route.js +30 -0
- package/dist/features/threads/threads.database.d.ts +68 -0
- package/dist/features/threads/threads.database.js +215 -0
- package/dist/features/threads/threads.manager.d.ts +204 -0
- package/dist/features/threads/threads.manager.js +505 -0
- package/dist/features/threads/threads.routes.d.ts +20 -0
- package/dist/features/threads/threads.routes.js +230 -0
- package/dist/features/todos/todos.database.d.ts +14 -0
- package/dist/features/todos/todos.database.js +31 -0
- package/dist/features/updates/updates.routes.d.ts +13 -0
- package/dist/features/updates/updates.routes.js +40 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +37 -10022
- package/dist/project-analyzer.d.ts +26 -0
- package/dist/project-analyzer.js +307 -0
- package/dist/public/assets/add-agent-view-B9IQjAwU.js +1 -0
- package/dist/public/assets/add-rule-view-BdZHurB3.js +7 -0
- package/dist/public/assets/add-skill-view-Cuu6Z0fr.js +1 -0
- package/dist/public/assets/add-slash-command-view-uW75Jvbh.js +1 -0
- package/dist/public/assets/conversation-history-view-D0OBxJMC.js +1 -0
- package/dist/public/assets/dialogs-config-DiFQjCeA.js +46 -0
- package/dist/public/assets/diff-view-B5XBM5UZ.js +3 -0
- package/dist/public/assets/file-tree-sidebar-DMX7fHi7.js +1 -0
- package/dist/public/assets/files-view-CUZn7G0o.js +1 -0
- package/dist/public/assets/history-view-B8HM78Wa.js +1 -0
- package/dist/public/assets/index-C-p81QYw.js +17 -0
- package/dist/public/assets/index-DhVMb7D6.css +1 -0
- package/dist/public/assets/mcp-manager-CEm1L3dn.js +1 -0
- package/dist/public/assets/mcp-server-edit-view-BAwMNOAH.js +5 -0
- package/dist/public/assets/mcp-servers-sidebar-Ncxq9Oj5.js +1 -0
- package/dist/public/assets/mcp-view-Cz7nelGQ.js +1 -0
- package/dist/public/assets/monaco-DvsnxTfD.js +11 -0
- package/dist/public/assets/onboarding-CvpvkF3X.js +1 -0
- package/dist/public/assets/onboarding-dialog-CKJw0ULj.js +1 -0
- package/dist/public/assets/project-settings-view-DJ1uvrTL.js +1 -0
- package/dist/public/assets/provider-details-view-CkS6WbnK.js +1 -0
- package/dist/public/assets/providers-sidebar-C4MF6i9d.js +1 -0
- package/dist/public/assets/radio-group-BItFbSTw.js +1 -0
- package/dist/public/assets/react-vendor-DkKo9QGO.js +17 -0
- package/dist/public/assets/rolldown-runtime-Dw2cE7zH.js +1 -0
- package/dist/public/assets/settings-view-C45kmAGH.js +2 -0
- package/dist/public/assets/store-BVVGurzl.js +2 -0
- package/dist/public/assets/use-toast-DEJkXPN4.js +1 -0
- package/dist/public/assets/utils-DY_quHB8.js +1 -0
- package/dist/public/fonts/google-sans.ttf +0 -0
- package/dist/public/fonts/zalando.ttf +0 -0
- package/dist/public/ide/android-studio.svg +1 -0
- package/dist/public/ide/cursor.svg +12 -0
- package/dist/public/ide/kiro.svg +11 -0
- package/dist/public/ide/terminal.svg +7 -0
- package/dist/public/ide/vscode.svg +2 -0
- package/dist/public/ide/windsurf.svg +3 -0
- package/dist/public/ide/xcode.svg +2 -0
- package/dist/public/index.html +13 -9
- package/dist/scaffold-templates.json +3 -12
- package/dist/server.d.ts +12 -0
- package/dist/server.js +142 -0
- package/dist/tools/agent-tool.d.ts +49 -0
- package/dist/tools/agent-tool.js +131 -0
- package/dist/tools/ask-user.d.ts +25 -0
- package/dist/tools/ask-user.js +74 -0
- package/dist/tools/ast-grep.d.ts +28 -0
- package/dist/tools/ast-grep.js +273 -0
- package/dist/tools/bash.d.ts +33 -0
- package/dist/tools/bash.js +186 -0
- package/dist/tools/edit-diff.d.ts +24 -0
- package/dist/tools/edit-diff.js +136 -0
- package/dist/tools/edit.d.ts +28 -0
- package/dist/tools/edit.js +78 -0
- package/dist/tools/find.d.ts +31 -0
- package/dist/tools/find.js +117 -0
- package/dist/tools/grep.d.ts +37 -0
- package/dist/tools/grep.js +231 -0
- package/dist/tools/index.d.ts +93 -0
- package/dist/tools/index.js +110 -0
- package/dist/tools/ls.d.ts +31 -0
- package/dist/tools/ls.js +108 -0
- package/dist/tools/mcp-tools.d.ts +31 -0
- package/dist/tools/mcp-tools.js +59 -0
- package/dist/tools/path-utils.d.ts +14 -0
- package/dist/tools/path-utils.js +87 -0
- package/dist/tools/read.d.ts +27 -0
- package/dist/tools/read.js +86 -0
- package/dist/tools/resolve-bin.d.ts +5 -0
- package/dist/tools/resolve-bin.js +28 -0
- package/dist/tools/shell.d.ts +7 -0
- package/dist/tools/shell.js +143 -0
- package/dist/tools/skill-reference-tool.d.ts +30 -0
- package/dist/tools/skill-reference-tool.js +171 -0
- package/dist/tools/skill-tool.d.ts +33 -0
- package/dist/tools/skill-tool.js +213 -0
- package/dist/tools/todo.d.ts +20 -0
- package/dist/tools/todo.js +168 -0
- package/dist/tools/tool-helpers.d.ts +78 -0
- package/dist/tools/tool-helpers.js +109 -0
- package/dist/tools/truncate.d.ts +31 -0
- package/dist/tools/truncate.js +164 -0
- package/dist/tools/write.d.ts +21 -0
- package/dist/tools/write.js +65 -0
- package/package.json +33 -27
- package/dist/public/assets/index-6jySngUQ.css +0 -1
- package/dist/public/assets/index-BjFpLTSj.js +0 -18
- package/dist/public/assets/monaco-w6PwaWGP.js +0 -11
- package/dist/public/assets/radix-ui-e1yigncZ.js +0 -1
- package/dist/public/assets/react-vendor-B6JfXZmN.js +0 -59
- package/dist/public/assets/ui-styling-CyCIFleB.js +0 -1
- package/dist/public/assets/utils-Dd_itR7L.js +0 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
interface ProjectInfo {
|
|
2
|
+
framework?: string;
|
|
3
|
+
frameworkVersion?: string;
|
|
4
|
+
buildTool?: string;
|
|
5
|
+
testingLibraries?: string[];
|
|
6
|
+
uiLibraries?: string[];
|
|
7
|
+
projectType?: string;
|
|
8
|
+
packageManager?: string;
|
|
9
|
+
description: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class ProjectAnalyzer {
|
|
12
|
+
private projectPath;
|
|
13
|
+
constructor(projectPath?: string);
|
|
14
|
+
analyze(): string;
|
|
15
|
+
getProjectInfo(): ProjectInfo;
|
|
16
|
+
private detectFramework;
|
|
17
|
+
private detectBuildTool;
|
|
18
|
+
private detectTestingLibraries;
|
|
19
|
+
private detectUILibraries;
|
|
20
|
+
private detectProjectType;
|
|
21
|
+
private detectPackageManager;
|
|
22
|
+
private generateDescription;
|
|
23
|
+
}
|
|
24
|
+
export declare function analyzeProject(projectPath?: string): string;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=project-analyzer.d.ts.map
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
export class ProjectAnalyzer {
|
|
4
|
+
projectPath;
|
|
5
|
+
constructor(projectPath = process.cwd()) {
|
|
6
|
+
this.projectPath = projectPath;
|
|
7
|
+
}
|
|
8
|
+
analyze() {
|
|
9
|
+
const info = this.getProjectInfo();
|
|
10
|
+
return this.generateDescription(info);
|
|
11
|
+
}
|
|
12
|
+
getProjectInfo() {
|
|
13
|
+
const packageJsonPath = join(this.projectPath, "package.json");
|
|
14
|
+
const info = { description: "" };
|
|
15
|
+
if (existsSync(packageJsonPath)) {
|
|
16
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
17
|
+
const allDeps = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
18
|
+
// Detect framework
|
|
19
|
+
this.detectFramework(allDeps, info);
|
|
20
|
+
// Detect build tool
|
|
21
|
+
this.detectBuildTool(packageJson.scripts, allDeps, info);
|
|
22
|
+
// Detect testing libraries
|
|
23
|
+
this.detectTestingLibraries(allDeps, info);
|
|
24
|
+
// Detect UI libraries
|
|
25
|
+
this.detectUILibraries(allDeps, info);
|
|
26
|
+
}
|
|
27
|
+
// Detect project type from files
|
|
28
|
+
this.detectProjectType(info);
|
|
29
|
+
// Detect package manager
|
|
30
|
+
this.detectPackageManager(info);
|
|
31
|
+
return info;
|
|
32
|
+
}
|
|
33
|
+
detectFramework(deps, info) {
|
|
34
|
+
// React
|
|
35
|
+
if (deps.react) {
|
|
36
|
+
info.framework = "React";
|
|
37
|
+
info.frameworkVersion = deps.react.replace(/^[\^~]/, "");
|
|
38
|
+
}
|
|
39
|
+
// Vue
|
|
40
|
+
else if (deps.vue) {
|
|
41
|
+
info.framework = "Vue";
|
|
42
|
+
info.frameworkVersion = deps.vue.replace(/^[\^~]/, "");
|
|
43
|
+
}
|
|
44
|
+
// Angular
|
|
45
|
+
else if (deps["@angular/core"]) {
|
|
46
|
+
info.framework = "Angular";
|
|
47
|
+
info.frameworkVersion = deps["@angular/core"].replace(/^[\^~]/, "");
|
|
48
|
+
}
|
|
49
|
+
// Svelte
|
|
50
|
+
else if (deps.svelte) {
|
|
51
|
+
info.framework = "Svelte";
|
|
52
|
+
info.frameworkVersion = deps.svelte.replace(/^[\^~]/, "");
|
|
53
|
+
}
|
|
54
|
+
// Solid
|
|
55
|
+
else if (deps["solid-js"]) {
|
|
56
|
+
info.framework = "Solid";
|
|
57
|
+
info.frameworkVersion = deps["solid-js"].replace(/^[\^~]/, "");
|
|
58
|
+
}
|
|
59
|
+
// Next.js
|
|
60
|
+
else if (deps.next) {
|
|
61
|
+
info.framework = "Next.js";
|
|
62
|
+
info.frameworkVersion = deps.next.replace(/^[\^~]/, "");
|
|
63
|
+
}
|
|
64
|
+
// Nuxt
|
|
65
|
+
else if (deps.nuxt) {
|
|
66
|
+
info.framework = "Nuxt";
|
|
67
|
+
info.frameworkVersion = deps.nuxt.replace(/^[\^~]/, "");
|
|
68
|
+
}
|
|
69
|
+
// Astro
|
|
70
|
+
else if (deps.astro) {
|
|
71
|
+
info.framework = "Astro";
|
|
72
|
+
info.frameworkVersion = deps.astro.replace(/^[\^~]/, "");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
detectBuildTool(_scripts = {}, deps, info) {
|
|
76
|
+
// Vite
|
|
77
|
+
if (deps.vite ||
|
|
78
|
+
existsSync(join(this.projectPath, "vite.config.js")) ||
|
|
79
|
+
existsSync(join(this.projectPath, "vite.config.ts"))) {
|
|
80
|
+
info.buildTool = "Vite";
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// Webpack
|
|
84
|
+
if (deps.webpack || existsSync(join(this.projectPath, "webpack.config.js"))) {
|
|
85
|
+
info.buildTool = "Webpack";
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Rollup
|
|
89
|
+
if (deps.rollup || existsSync(join(this.projectPath, "rollup.config.js"))) {
|
|
90
|
+
info.buildTool = "Rollup";
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Parcel
|
|
94
|
+
if (deps.parcel) {
|
|
95
|
+
info.buildTool = "Parcel";
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// esbuild
|
|
99
|
+
if (deps.esbuild) {
|
|
100
|
+
info.buildTool = "esbuild";
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
// Turbopack
|
|
104
|
+
if (deps.turbo) {
|
|
105
|
+
info.buildTool = "Turbopack";
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
detectTestingLibraries(deps, info) {
|
|
110
|
+
const testingLibs = [];
|
|
111
|
+
// Testing frameworks
|
|
112
|
+
if (deps.jest)
|
|
113
|
+
testingLibs.push("Jest");
|
|
114
|
+
if (deps.vitest)
|
|
115
|
+
testingLibs.push("Vitest");
|
|
116
|
+
if (deps.mocha)
|
|
117
|
+
testingLibs.push("Mocha");
|
|
118
|
+
if (deps.jasmine)
|
|
119
|
+
testingLibs.push("Jasmine");
|
|
120
|
+
if (deps["@jest/globals"])
|
|
121
|
+
testingLibs.push("Jest");
|
|
122
|
+
// Testing utilities
|
|
123
|
+
if (deps["@testing-library/react"])
|
|
124
|
+
testingLibs.push("React Testing Library");
|
|
125
|
+
if (deps["@testing-library/vue"])
|
|
126
|
+
testingLibs.push("Vue Testing Library");
|
|
127
|
+
if (deps["@testing-library/jest-dom"])
|
|
128
|
+
testingLibs.push("Jest DOM");
|
|
129
|
+
if (deps.cypress)
|
|
130
|
+
testingLibs.push("Cypress");
|
|
131
|
+
if (deps.playwright)
|
|
132
|
+
testingLibs.push("Playwright");
|
|
133
|
+
if (deps["@playwright/test"])
|
|
134
|
+
testingLibs.push("Playwright");
|
|
135
|
+
if (deps.puppeteer)
|
|
136
|
+
testingLibs.push("Puppeteer");
|
|
137
|
+
// Remove duplicates and filter out empty strings
|
|
138
|
+
info.testingLibraries = [...new Set(testingLibs)].filter(Boolean);
|
|
139
|
+
}
|
|
140
|
+
detectUILibraries(deps, info) {
|
|
141
|
+
const uiLibs = [];
|
|
142
|
+
// UI component libraries
|
|
143
|
+
if (deps["@mui/material"])
|
|
144
|
+
uiLibs.push("Material-UI");
|
|
145
|
+
if (deps["@chakra-ui/react"])
|
|
146
|
+
uiLibs.push("Chakra UI");
|
|
147
|
+
if (deps["@radix-ui/react"])
|
|
148
|
+
uiLibs.push("Radix UI");
|
|
149
|
+
if (deps["@headlessui/react"])
|
|
150
|
+
uiLibs.push("Headless UI");
|
|
151
|
+
if (deps.antd)
|
|
152
|
+
uiLibs.push("Ant Design");
|
|
153
|
+
if (deps["semantic-ui-css"])
|
|
154
|
+
uiLibs.push("Semantic UI");
|
|
155
|
+
if (deps.bootstrap)
|
|
156
|
+
uiLibs.push("Bootstrap");
|
|
157
|
+
if (deps["react-bootstrap"])
|
|
158
|
+
uiLibs.push("React Bootstrap");
|
|
159
|
+
if (deps.tailwindcss)
|
|
160
|
+
uiLibs.push("Tailwind CSS");
|
|
161
|
+
if (deps["styled-components"])
|
|
162
|
+
uiLibs.push("Styled Components");
|
|
163
|
+
if (deps.emotion)
|
|
164
|
+
uiLibs.push("Emotion");
|
|
165
|
+
if (deps["@mantine/core"])
|
|
166
|
+
uiLibs.push("Mantine");
|
|
167
|
+
// Remove duplicates and filter out empty strings
|
|
168
|
+
info.uiLibraries = [...new Set(uiLibs)].filter(Boolean);
|
|
169
|
+
}
|
|
170
|
+
detectProjectType(info) {
|
|
171
|
+
// Xcode project
|
|
172
|
+
if (existsSync(join(this.projectPath, ".xcodeproj")) ||
|
|
173
|
+
existsSync(join(this.projectPath, ".xcworkspace")) ||
|
|
174
|
+
existsSync(join(this.projectPath, "project.pbxproj"))) {
|
|
175
|
+
info.projectType = "Xcode";
|
|
176
|
+
}
|
|
177
|
+
// Android Studio project
|
|
178
|
+
else if (existsSync(join(this.projectPath, "build.gradle")) ||
|
|
179
|
+
existsSync(join(this.projectPath, "build.gradle.kts")) ||
|
|
180
|
+
existsSync(join(this.projectPath, "app/build.gradle")) ||
|
|
181
|
+
existsSync(join(this.projectPath, "settings.gradle"))) {
|
|
182
|
+
info.projectType = "Android Studio";
|
|
183
|
+
}
|
|
184
|
+
// Flutter project
|
|
185
|
+
else if (existsSync(join(this.projectPath, "pubspec.yaml"))) {
|
|
186
|
+
info.projectType = "Flutter";
|
|
187
|
+
}
|
|
188
|
+
// Go project
|
|
189
|
+
else if (existsSync(join(this.projectPath, "go.mod"))) {
|
|
190
|
+
info.projectType = "Go";
|
|
191
|
+
}
|
|
192
|
+
// Rust project
|
|
193
|
+
else if (existsSync(join(this.projectPath, "Cargo.toml"))) {
|
|
194
|
+
info.projectType = "Rust";
|
|
195
|
+
}
|
|
196
|
+
// Python project
|
|
197
|
+
else if (existsSync(join(this.projectPath, "requirements.txt")) ||
|
|
198
|
+
existsSync(join(this.projectPath, "pyproject.toml")) ||
|
|
199
|
+
existsSync(join(this.projectPath, "setup.py"))) {
|
|
200
|
+
info.projectType = "Python";
|
|
201
|
+
}
|
|
202
|
+
// Ruby project
|
|
203
|
+
else if (existsSync(join(this.projectPath, "Gemfile"))) {
|
|
204
|
+
info.projectType = "Ruby";
|
|
205
|
+
}
|
|
206
|
+
// PHP project
|
|
207
|
+
else if (existsSync(join(this.projectPath, "composer.json"))) {
|
|
208
|
+
info.projectType = "PHP";
|
|
209
|
+
}
|
|
210
|
+
// Java project
|
|
211
|
+
else if (existsSync(join(this.projectPath, "pom.xml")) ||
|
|
212
|
+
existsSync(join(this.projectPath, "build.xml"))) {
|
|
213
|
+
info.projectType = "Java";
|
|
214
|
+
}
|
|
215
|
+
// C#/.NET project
|
|
216
|
+
else if (existsSync(join(this.projectPath, ".csproj")) ||
|
|
217
|
+
existsSync(join(this.projectPath, "project.json"))) {
|
|
218
|
+
info.projectType = ".NET";
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
detectPackageManager(info) {
|
|
222
|
+
// Check for lock files in order of specificity
|
|
223
|
+
if (existsSync(join(this.projectPath, "bun.lockb"))) {
|
|
224
|
+
info.packageManager = "Bun";
|
|
225
|
+
}
|
|
226
|
+
else if (existsSync(join(this.projectPath, "bun.lock"))) {
|
|
227
|
+
info.packageManager = "Bun";
|
|
228
|
+
}
|
|
229
|
+
else if (existsSync(join(this.projectPath, "pnpm-lock.yaml"))) {
|
|
230
|
+
info.packageManager = "pnpm";
|
|
231
|
+
}
|
|
232
|
+
else if (existsSync(join(this.projectPath, "yarn.lock"))) {
|
|
233
|
+
info.packageManager = "Yarn";
|
|
234
|
+
}
|
|
235
|
+
else if (existsSync(join(this.projectPath, "package-lock.json"))) {
|
|
236
|
+
info.packageManager = "npm";
|
|
237
|
+
}
|
|
238
|
+
else if (existsSync(join(this.projectPath, "npm-shrinkwrap.json"))) {
|
|
239
|
+
info.packageManager = "npm";
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
generateDescription(info) {
|
|
243
|
+
const parts = [];
|
|
244
|
+
// Start with project type if it's a non-JS project
|
|
245
|
+
if (info.projectType && !info.framework) {
|
|
246
|
+
parts.push(`This is a ${info.projectType} project`);
|
|
247
|
+
return parts.join(". ") + ".";
|
|
248
|
+
}
|
|
249
|
+
// Framework description
|
|
250
|
+
if (info.framework) {
|
|
251
|
+
let frameworkDesc = `This is a ${info.framework}`;
|
|
252
|
+
if (info.frameworkVersion) {
|
|
253
|
+
frameworkDesc += ` ${info.frameworkVersion}`;
|
|
254
|
+
}
|
|
255
|
+
parts.push(frameworkDesc);
|
|
256
|
+
}
|
|
257
|
+
// Build tool description
|
|
258
|
+
if (info.buildTool) {
|
|
259
|
+
parts.push(`built with ${info.buildTool}`);
|
|
260
|
+
}
|
|
261
|
+
// Package manager description
|
|
262
|
+
if (info.packageManager) {
|
|
263
|
+
parts.push(`using ${info.packageManager}`);
|
|
264
|
+
}
|
|
265
|
+
// Testing libraries
|
|
266
|
+
if (info.testingLibraries && info.testingLibraries.length > 0) {
|
|
267
|
+
if (info.testingLibraries.length === 1) {
|
|
268
|
+
parts.push(`using ${info.testingLibraries[0]} for testing`);
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
parts.push(`using ${info.testingLibraries.slice(0, -1).join(", ")} and ${info.testingLibraries[info.testingLibraries.length - 1]} for testing`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// UI libraries
|
|
275
|
+
if (info.uiLibraries && info.uiLibraries.length > 0) {
|
|
276
|
+
if (info.uiLibraries.length === 1) {
|
|
277
|
+
parts.push(`with ${info.uiLibraries[0]}`);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
parts.push(`with ${info.uiLibraries.slice(0, -1).join(", ")} and ${info.uiLibraries[info.uiLibraries.length - 1]}`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// If no framework detected but we have testing libraries or build tools
|
|
284
|
+
if (!info.framework && !info.projectType && parts.length === 0) {
|
|
285
|
+
if (info.buildTool) {
|
|
286
|
+
parts.push(`This is a project built with ${info.buildTool}`);
|
|
287
|
+
}
|
|
288
|
+
else if (info.testingLibraries && info.testingLibraries.length > 0) {
|
|
289
|
+
parts.push(`This is a project using ${info.testingLibraries.join(", ")} for testing`);
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
parts.push("This is a JavaScript/TypeScript project");
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// Project type for JS projects
|
|
296
|
+
if (info.projectType) {
|
|
297
|
+
parts.push(`(${info.projectType} project)`);
|
|
298
|
+
}
|
|
299
|
+
return parts.join(", ") + ".";
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// Convenience function for quick analysis
|
|
303
|
+
export function analyzeProject(projectPath) {
|
|
304
|
+
const analyzer = new ProjectAnalyzer(projectPath);
|
|
305
|
+
return analyzer.analyze();
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=project-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{F as t,Jn as n,Lr as r,Mi as i,Wn as a,c as o,l as s,vi as c}from"./dialogs-config-DiFQjCeA.js";import"./react-vendor-DkKo9QGO.js";import"./history-view-B8HM78Wa.js";import{t as l}from"./use-toast-DEJkXPN4.js";import{d as u}from"./index-C-p81QYw.js";import{n as d,t as f}from"./radio-group-BItFbSTw.js";var p=e(i(),1),m=n();function h({threadId:e,onAgentCreated:n}){let[i,h]=(0,p.useState)(``),[g,_]=(0,p.useState)(``),[v,y]=(0,p.useState)(``),[b,x]=(0,p.useState)(`local`),[S,C]=(0,p.useState)(!1),w=i.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),T=w.length>0&&w.length<=64;return e?(0,m.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,m.jsxs)(`div`,{className:`mb-6`,children:[(0,m.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Agent`}),(0,m.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new subagent. The agent will be saved as an AGENT.md file in the .agents/agents folder.`})]}),(0,m.jsxs)(`div`,{className:`space-y-6`,children:[(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{htmlFor:`agentName`,children:`Agent Name`}),(0,m.jsx)(o,{id:`agentName`,value:i,onChange:e=>h(e.target.value),placeholder:`e.g. Security Reviewer`,disabled:S}),i&&(0,m.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Folder name: `,(0,m.jsx)(`span`,{className:`font-mono`,children:w||`...`})]})]}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{htmlFor:`agentDescription`,children:`Description`}),(0,m.jsx)(u,{id:`agentDescription`,value:g,onChange:e=>_(e.target.value),placeholder:`Describe what this agent does and when it should be invoked`,className:`resize-none min-h-[120px]`,disabled:S})]}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{htmlFor:`agentTools`,children:`Allowed Tools (optional)`}),(0,m.jsx)(o,{id:`agentTools`,value:v,onChange:e=>y(e.target.value),placeholder:`e.g. read grep glob`,disabled:S}),(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Space-separated list of tools this agent can use. Leave empty to allow all coding tools.`})]}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{children:`Scope`}),(0,m.jsxs)(f,{value:b,onValueChange:e=>x(e),className:`flex gap-4`,disabled:S,children:[(0,m.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,m.jsx)(d,{value:`local`,id:`scope-local`}),(0,m.jsx)(s,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,m.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,m.jsx)(d,{value:`global`,id:`scope-global`,disabled:!0}),(0,m.jsx)(s,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:b===`local`?`This agent will only be available for this project.`:`This agent will be available across all projects (coming soon).`})]}),(0,m.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,m.jsx)(a,{onClick:async()=>{if(!(!T||!g.trim()||!e)){C(!0);try{let r=await t(e,w,g.trim(),v.trim()||void 0);l({title:`Agent created`,description:`Agent '${w}' was created successfully.`}),h(``),_(``),y(``),x(`local`),n?.(r.path,`AGENT.md`)}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to create agent`,variant:`destructive`})}finally{C(!1)}}},disabled:!T||!g.trim()||S,children:S?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(r,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,m.jsxs)(m.Fragment,{children:[`Continue`,(0,m.jsx)(c,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,m.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,m.jsxs)(`div`,{className:`text-center`,children:[(0,m.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Thread Selected`}),(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a thread to add an agent.`})]})})}export{h as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Ai as t,Jn as n,Lr as r,Mi as i,Vt as a,Wn as o,Zn as s,c,l,vi as u}from"./dialogs-config-DiFQjCeA.js";import{i as d,r as f}from"./react-vendor-DkKo9QGO.js";import"./history-view-B8HM78Wa.js";import{t as p}from"./use-toast-DEJkXPN4.js";import{d as m}from"./index-C-p81QYw.js";import{n as h,t as g}from"./radio-group-BItFbSTw.js";var _=t(),v=e(i(),1),y=n(),b=v.forwardRef((e,t)=>{let n=(0,_.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,y.jsx)(d,{className:s(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)}),n[5]=o):o=n[5];let c;return n[6]!==i||n[7]!==t||n[8]!==a?(c=(0,y.jsx)(f,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=c):c=n[9],c});b.displayName=f.displayName;function x({threadId:e,onRuleCreated:t}){let[n,i]=(0,v.useState)(``),[s,d]=(0,v.useState)(``),[f,_]=(0,v.useState)(!1),[x,S]=(0,v.useState)(`local`),[C,w]=(0,v.useState)(!1),T=n.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),E=T.length>0&&T.length<=64;return e?(0,y.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,y.jsxs)(`div`,{className:`mb-6`,children:[(0,y.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Rule`}),(0,y.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new agent rule. The rule will be saved as a .md file in the .agents/rules folder.`})]}),(0,y.jsxs)(`div`,{className:`space-y-6`,children:[(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(l,{htmlFor:`ruleName`,children:`Rule Name`}),(0,y.jsx)(c,{id:`ruleName`,value:n,onChange:e=>i(e.target.value),placeholder:`e.g. Code Style Guide`,disabled:C}),n&&(0,y.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`File name: `,(0,y.jsxs)(`span`,{className:`font-mono`,children:[T||`...`,`.md`]})]})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(l,{htmlFor:`ruleDescription`,children:`Description`}),(0,y.jsx)(m,{id:`ruleDescription`,value:s,onChange:e=>d(e.target.value),placeholder:`Describe when Tarsk should apply this rule...`,className:`resize-none min-h-[120px]`,disabled:C})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,y.jsx)(l,{htmlFor:`alwaysApply`,children:`Always Apply`}),(0,y.jsx)(b,{id:`alwaysApply`,checked:f,onCheckedChange:_,disabled:C})]}),(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f?`This rule will be automatically added to context for all conversations.`:`Only the rule description will be added to context, allowing the agent to read the rule file when needed.`})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(l,{children:`Scope`}),(0,y.jsxs)(g,{value:x,onValueChange:e=>S(e),className:`flex gap-4`,disabled:C,children:[(0,y.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,y.jsx)(h,{value:`local`,id:`scope-local`}),(0,y.jsx)(l,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,y.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,y.jsx)(h,{value:`global`,id:`scope-global`,disabled:!0}),(0,y.jsx)(l,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:x===`local`?`This rule will only be available for this project.`:`This rule will be available across all projects (coming soon).`})]}),(0,y.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,y.jsx)(o,{onClick:async()=>{if(!(!E||!e)){w(!0);try{let n=`---
|
|
2
|
+
description: ${s.trim()}
|
|
3
|
+
alwaysApply: ${f}
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Place your rule instructions here as markdown.
|
|
7
|
+
`;await a(e,`.agents/rules/${T}.md`,n),p({title:`Rule created`,description:`Rule '${T}' was created successfully.`}),i(``),d(``),_(!1),S(`local`),t?.(T)}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to create rule`,variant:`destructive`})}finally{w(!1)}}},disabled:!E||!s.trim()||C,children:C?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(r,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,y.jsxs)(y.Fragment,{children:[`Continue`,(0,y.jsx)(u,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,y.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,y.jsxs)(`div`,{className:`text-center`,children:[(0,y.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Thread Selected`}),(0,y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a thread to add a rule.`})]})})}export{x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{I as t,Jn as n,Lr as r,Mi as i,Wn as a,c as o,l as s,vi as c}from"./dialogs-config-DiFQjCeA.js";import"./react-vendor-DkKo9QGO.js";import"./history-view-B8HM78Wa.js";import{t as l}from"./use-toast-DEJkXPN4.js";import{d as u}from"./index-C-p81QYw.js";import{n as d,t as f}from"./radio-group-BItFbSTw.js";var p=e(i(),1),m=n();function h({threadId:e,onSkillCreated:n}){let[i,h]=(0,p.useState)(``),[g,_]=(0,p.useState)(``),[v,y]=(0,p.useState)(`local`),[b,x]=(0,p.useState)(!1),S=i.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),C=S.length>0&&S.length<=64;return e?(0,m.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,m.jsxs)(`div`,{className:`mb-6`,children:[(0,m.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Skill`}),(0,m.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new agent skill. The skill will be saved as a SKILL.md file in the .agents/skills folder.`})]}),(0,m.jsxs)(`div`,{className:`space-y-6`,children:[(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{htmlFor:`skillName`,children:`Skill Name`}),(0,m.jsx)(o,{id:`skillName`,value:i,onChange:e=>h(e.target.value),placeholder:`e.g. Code Review`,disabled:b}),i&&(0,m.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Folder name: `,(0,m.jsx)(`span`,{className:`font-mono`,children:S||`...`})]})]}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{htmlFor:`skillDescription`,children:`Description`}),(0,m.jsx)(u,{id:`skillDescription`,value:g,onChange:e=>_(e.target.value),placeholder:`Describe when Tarsk should apply this skill`,className:`resize-none min-h-[120px]`,disabled:b})]}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(s,{children:`Scope`}),(0,m.jsxs)(f,{value:v,onValueChange:e=>y(e),className:`flex gap-4`,disabled:b,children:[(0,m.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,m.jsx)(d,{value:`local`,id:`scope-local`}),(0,m.jsx)(s,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,m.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,m.jsx)(d,{value:`global`,id:`scope-global`,disabled:!0}),(0,m.jsx)(s,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:v===`local`?`This skill will only be available for this project.`:`This skill will be available across all projects (coming soon).`})]}),(0,m.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,m.jsx)(a,{onClick:async()=>{if(!(!C||!g.trim()||!e)){x(!0);try{let r=await t(e,S,g.trim());l({title:`Skill created`,description:`Skill '${S}' was created successfully.`}),h(``),_(``),y(`local`),n?.(r.path,`SKILL.md`)}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{x(!1)}}},disabled:!C||!g.trim()||b,children:b?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(r,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,m.jsxs)(m.Fragment,{children:[`Continue`,(0,m.jsx)(c,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,m.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,m.jsxs)(`div`,{className:`text-center`,children:[(0,m.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Thread Selected`}),(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a thread to add a skill.`})]})})}export{h as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{Jn as t,Lr as n,Mi as r,N as i,Wn as a,c as o,l as s,vi as c}from"./dialogs-config-DiFQjCeA.js";import"./react-vendor-DkKo9QGO.js";import"./history-view-B8HM78Wa.js";import{t as l}from"./use-toast-DEJkXPN4.js";import{n as u,t as d}from"./radio-group-BItFbSTw.js";var f=e(r(),1),p=t();function m({projectId:e,threadId:t,onCommandCreated:r}){let[m,h]=(0,f.useState)(``),[g,_]=(0,f.useState)(``),[v,y]=(0,f.useState)(``),[b,x]=(0,f.useState)(`default`),[S,C]=(0,f.useState)(`local`),[w,T]=(0,f.useState)(!1),E=m.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),D=E.length>0&&E.length<=64;return e?(0,p.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,p.jsxs)(`div`,{className:`mb-6`,children:[(0,p.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Slash Command`}),(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new slash command. The command will be saved as a .md file in the ~/.agents/commands folder.`})]}),(0,p.jsxs)(`div`,{className:`space-y-6`,children:[(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{htmlFor:`commandName`,children:`Command Name`}),(0,p.jsx)(o,{id:`commandName`,value:m,onChange:e=>h(e.target.value),placeholder:`e.g. review`,disabled:w}),m&&(0,p.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Command: `,(0,p.jsxs)(`span`,{className:`font-mono`,children:[`/`,E||`...`]})]})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{htmlFor:`commandDescription`,children:`Description`}),(0,p.jsx)(o,{id:`commandDescription`,value:g,onChange:e=>_(e.target.value),placeholder:`Brief description shown in autocomplete`,disabled:w})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{htmlFor:`argumentHint`,children:`Argument Hint (optional)`}),(0,p.jsx)(o,{id:`argumentHint`,value:v,onChange:e=>y(e.target.value),placeholder:`e.g. <focus-area> or <branch-name>`,disabled:w}),(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Shows after the command name to guide users what to type`})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{children:`Mode`}),(0,p.jsxs)(d,{value:b,onValueChange:e=>x(e),className:`flex gap-4`,disabled:w,children:[(0,p.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,p.jsx)(u,{value:`default`,id:`mode-default`}),(0,p.jsx)(s,{htmlFor:`mode-default`,className:`font-normal cursor-pointer`,children:`Default`})]}),(0,p.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,p.jsx)(u,{value:`plan`,id:`mode-plan`}),(0,p.jsx)(s,{htmlFor:`mode-plan`,className:`font-normal cursor-pointer`,children:`Plan`})]})]}),(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:b===`default`?`Standard chat mode`:`Activates plan mode when this command is used`})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{children:`Scope`}),(0,p.jsxs)(d,{value:S,onValueChange:e=>C(e),className:`flex gap-4`,disabled:w,children:[(0,p.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,p.jsx)(u,{value:`local`,id:`scope-local`}),(0,p.jsx)(s,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,p.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,p.jsx)(u,{value:`global`,id:`scope-global`,disabled:!0}),(0,p.jsx)(s,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:S===`local`?`This command will only be available for this project.`:`This command will be available across all projects (coming soon).`})]}),(0,p.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,p.jsx)(a,{onClick:async()=>{if(!(!D||!e)){T(!0);try{await i(E,``,{description:g.trim()||void 0,argumentHint:v.trim()||void 0,mode:b===`plan`?`plan`:void 0},S===`global`?`global`:`project`,t??void 0),l({title:`Command created`,description:`Command '/${E}' was created successfully.`}),h(``),_(``),y(``),x(`default`),C(`local`),r?.(E)}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to create command`,variant:`destructive`})}finally{T(!1)}}},disabled:!D||w,children:w?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(n,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,p.jsxs)(p.Fragment,{children:[`Continue`,(0,p.jsx)(c,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,p.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,p.jsxs)(`div`,{className:`text-center`,children:[(0,p.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Project Selected`}),(0,p.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a project to add a slash command.`})]})})}export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./dialogs-config-DiFQjCeA.js";import{t as e}from"./history-view-B8HM78Wa.js";export{e as ConversationHistoryView,e as default};
|