@nanocollective/nanocoder 1.21.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -4
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client/ai-sdk-client.d.ts.map +1 -1
- package/dist/ai-sdk-client/ai-sdk-client.js.map +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.d.ts.map +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.js +1 -0
- package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
- package/dist/ai-sdk-client/providers/provider-factory.d.ts +6 -3
- package/dist/ai-sdk-client/providers/provider-factory.d.ts.map +1 -1
- package/dist/ai-sdk-client/providers/provider-factory.js +18 -4
- package/dist/ai-sdk-client/providers/provider-factory.js.map +1 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/App.js +16 -16
- package/dist/app/App.js.map +1 -1
- package/dist/app/components/modal-selectors.d.ts +3 -10
- package/dist/app/components/modal-selectors.d.ts.map +1 -1
- package/dist/app/components/modal-selectors.js +4 -12
- package/dist/app/components/modal-selectors.js.map +1 -1
- package/dist/app/components/settings-selector.d.ts +6 -0
- package/dist/app/components/settings-selector.d.ts.map +1 -0
- package/dist/app/components/settings-selector.js +289 -0
- package/dist/app/components/settings-selector.js.map +1 -0
- package/dist/app/utils/app-util.d.ts.map +1 -1
- package/dist/app/utils/app-util.js +11 -16
- package/dist/app/utils/app-util.js.map +1 -1
- package/dist/client-factory.js +4 -0
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/clear.d.ts.map +1 -1
- package/dist/commands/clear.js +8 -5
- package/dist/commands/clear.js.map +1 -1
- package/dist/commands/custom-commands.d.ts.map +1 -1
- package/dist/commands/custom-commands.js +1 -1
- package/dist/commands/custom-commands.js.map +1 -1
- package/dist/commands/explorer.d.ts +3 -0
- package/dist/commands/explorer.d.ts.map +1 -0
- package/dist/commands/explorer.js +10 -0
- package/dist/commands/explorer.js.map +1 -0
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +1 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +3 -3
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -3
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/lsp.d.ts.map +1 -1
- package/dist/commands/lsp.js +1 -1
- package/dist/commands/lsp.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/model-database.d.ts.map +1 -1
- package/dist/commands/model-database.js +3 -3
- package/dist/commands/model-database.js.map +1 -1
- package/dist/commands/settings.d.ts +3 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/{theme.js → settings.js} +4 -4
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/tasks.d.ts +3 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +117 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +31 -9
- package/dist/commands/usage.js.map +1 -1
- package/dist/components/assistant-message.d.ts.map +1 -1
- package/dist/components/assistant-message.js +39 -6
- package/dist/components/assistant-message.js.map +1 -1
- package/dist/components/checkpoint-selector.d.ts.map +1 -1
- package/dist/components/checkpoint-selector.js +3 -3
- package/dist/components/checkpoint-selector.js.map +1 -1
- package/dist/components/file-explorer/index.d.ts +3 -0
- package/dist/components/file-explorer/index.d.ts.map +1 -0
- package/dist/components/file-explorer/index.js +318 -0
- package/dist/components/file-explorer/index.js.map +1 -0
- package/dist/components/file-explorer/tree-item.d.ts +3 -0
- package/dist/components/file-explorer/tree-item.d.ts.map +1 -0
- package/dist/components/file-explorer/tree-item.js +42 -0
- package/dist/components/file-explorer/tree-item.js.map +1 -0
- package/dist/components/file-explorer/utils.d.ts +18 -0
- package/dist/components/file-explorer/utils.d.ts.map +1 -0
- package/dist/components/file-explorer/utils.js +51 -0
- package/dist/components/file-explorer/utils.js.map +1 -0
- package/dist/components/file-explorer.d.ts +2 -0
- package/dist/components/file-explorer.d.ts.map +1 -0
- package/dist/components/file-explorer.js +3 -0
- package/dist/components/file-explorer.js.map +1 -0
- package/dist/components/message-box.d.ts +1 -0
- package/dist/components/message-box.d.ts.map +1 -1
- package/dist/components/message-box.js +2 -2
- package/dist/components/message-box.js.map +1 -1
- package/dist/components/model-selector.d.ts.map +1 -1
- package/dist/components/model-selector.js +3 -3
- package/dist/components/model-selector.js.map +1 -1
- package/dist/components/provider-selector.d.ts.map +1 -1
- package/dist/components/provider-selector.js +1 -1
- package/dist/components/provider-selector.js.map +1 -1
- package/dist/components/security-disclaimer.d.ts.map +1 -1
- package/dist/components/security-disclaimer.js +1 -1
- package/dist/components/security-disclaimer.js.map +1 -1
- package/dist/components/status.d.ts.map +1 -1
- package/dist/components/status.js +1 -1
- package/dist/components/status.js.map +1 -1
- package/dist/components/task-list-display.d.ts +8 -0
- package/dist/components/task-list-display.d.ts.map +1 -0
- package/dist/components/task-list-display.js +26 -0
- package/dist/components/task-list-display.js.map +1 -0
- package/dist/components/tool-message.d.ts.map +1 -1
- package/dist/components/tool-message.js +1 -1
- package/dist/components/tool-message.js.map +1 -1
- package/dist/components/ui/styled-title.js +38 -38
- package/dist/components/usage/progress-bar.d.ts.map +1 -1
- package/dist/components/usage/progress-bar.js +6 -3
- package/dist/components/usage/progress-bar.js.map +1 -1
- package/dist/components/usage/usage-display.d.ts.map +1 -1
- package/dist/components/usage/usage-display.js +1 -1
- package/dist/components/usage/usage-display.js.map +1 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +35 -2
- package/dist/components/user-input.js.map +1 -1
- package/dist/components/user-message.d.ts.map +1 -1
- package/dist/components/user-message.js +43 -12
- package/dist/components/user-message.js.map +1 -1
- package/dist/components/welcome-message.d.ts.map +1 -1
- package/dist/components/welcome-message.js +1 -1
- package/dist/components/welcome-message.js.map +1 -1
- package/dist/config/preferences.d.ts +1 -0
- package/dist/config/preferences.d.ts.map +1 -1
- package/dist/config/preferences.js +5 -0
- package/dist/config/preferences.js.map +1 -1
- package/dist/config/themes.d.ts.map +1 -1
- package/dist/config/themes.js +340 -0
- package/dist/config/themes.js.map +1 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +63 -0
- package/dist/constants.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +1 -0
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.js +10 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.js +5 -0
- package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
- package/dist/hooks/useAppHandlers.d.ts +2 -3
- package/dist/hooks/useAppHandlers.d.ts.map +1 -1
- package/dist/hooks/useAppHandlers.js +2 -3
- package/dist/hooks/useAppHandlers.js.map +1 -1
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +7 -4
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +4 -6
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +6 -9
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +8 -14
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +22 -60
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useUIState.d.ts +2 -0
- package/dist/hooks/useUIState.d.ts.map +1 -1
- package/dist/hooks/useUIState.js +11 -1
- package/dist/hooks/useUIState.js.map +1 -1
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +57 -37
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/tools/git/git-add.d.ts +8 -0
- package/dist/tools/git/git-add.d.ts.map +1 -0
- package/dist/tools/git/git-add.js +141 -0
- package/dist/tools/git/git-add.js.map +1 -0
- package/dist/tools/git/git-branch.d.ts +8 -0
- package/dist/tools/git/git-branch.d.ts.map +1 -0
- package/dist/tools/git/git-branch.js +251 -0
- package/dist/tools/git/git-branch.js.map +1 -0
- package/dist/tools/git/git-commit.d.ts +8 -0
- package/dist/tools/git/git-commit.d.ts.map +1 -0
- package/dist/tools/git/git-commit.js +176 -0
- package/dist/tools/git/git-commit.js.map +1 -0
- package/dist/tools/git/git-diff.d.ts +8 -0
- package/dist/tools/git/git-diff.d.ts.map +1 -0
- package/dist/tools/git/git-diff.js +136 -0
- package/dist/tools/git/git-diff.js.map +1 -0
- package/dist/tools/git/git-log.d.ts +8 -0
- package/dist/tools/git/git-log.d.ts.map +1 -0
- package/dist/tools/git/git-log.js +146 -0
- package/dist/tools/git/git-log.js.map +1 -0
- package/dist/tools/git/git-pr.d.ts +8 -0
- package/dist/tools/git/git-pr.d.ts.map +1 -0
- package/dist/tools/git/git-pr.js +252 -0
- package/dist/tools/git/git-pr.js.map +1 -0
- package/dist/tools/git/git-pull.d.ts +8 -0
- package/dist/tools/git/git-pull.d.ts.map +1 -0
- package/dist/tools/git/git-pull.js +151 -0
- package/dist/tools/git/git-pull.js.map +1 -0
- package/dist/tools/git/git-push.d.ts +8 -0
- package/dist/tools/git/git-push.d.ts.map +1 -0
- package/dist/tools/git/git-push.js +157 -0
- package/dist/tools/git/git-push.js.map +1 -0
- package/dist/tools/git/git-reset.d.ts +8 -0
- package/dist/tools/git/git-reset.d.ts.map +1 -0
- package/dist/tools/git/git-reset.js +183 -0
- package/dist/tools/git/git-reset.js.map +1 -0
- package/dist/tools/git/git-stash.d.ts +8 -0
- package/dist/tools/git/git-stash.d.ts.map +1 -0
- package/dist/tools/git/git-stash.js +260 -0
- package/dist/tools/git/git-stash.js.map +1 -0
- package/dist/tools/git/git-status.d.ts +8 -0
- package/dist/tools/git/git-status.d.ts.map +1 -0
- package/dist/tools/git/git-status.js +233 -0
- package/dist/tools/git/git-status.js.map +1 -0
- package/dist/tools/git/index.d.ts +9 -12
- package/dist/tools/git/index.d.ts.map +1 -1
- package/dist/tools/git/index.js +43 -11
- package/dist/tools/git/index.js.map +1 -1
- package/dist/tools/git/utils.d.ts +136 -23
- package/dist/tools/git/utils.d.ts.map +1 -1
- package/dist/tools/git/utils.js +405 -360
- package/dist/tools/git/utils.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/string-replace.d.ts.map +1 -1
- package/dist/tools/string-replace.js +68 -16
- package/dist/tools/string-replace.js.map +1 -1
- package/dist/tools/tasks/create-task.d.ts +3 -0
- package/dist/tools/tasks/create-task.d.ts.map +1 -0
- package/dist/tools/tasks/create-task.js +101 -0
- package/dist/tools/tasks/create-task.js.map +1 -0
- package/dist/tools/tasks/delete-task.d.ts +3 -0
- package/dist/tools/tasks/delete-task.d.ts.map +1 -0
- package/dist/tools/tasks/delete-task.js +101 -0
- package/dist/tools/tasks/delete-task.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +7 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +6 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/tasks/list-tasks.d.ts +3 -0
- package/dist/tools/tasks/list-tasks.d.ts.map +1 -0
- package/dist/tools/tasks/list-tasks.js +67 -0
- package/dist/tools/tasks/list-tasks.js.map +1 -0
- package/dist/tools/tasks/storage.d.ts +7 -0
- package/dist/tools/tasks/storage.d.ts.map +1 -0
- package/dist/tools/tasks/storage.js +31 -0
- package/dist/tools/tasks/storage.js.map +1 -0
- package/dist/tools/tasks/types.d.ts +11 -0
- package/dist/tools/tasks/types.d.ts.map +1 -0
- package/dist/tools/tasks/types.js +2 -0
- package/dist/tools/tasks/types.js.map +1 -0
- package/dist/tools/tasks/update-task.d.ts +3 -0
- package/dist/tools/tasks/update-task.d.ts.map +1 -0
- package/dist/tools/tasks/update-task.js +142 -0
- package/dist/tools/tasks/update-task.js.map +1 -0
- package/dist/tools/write-file.d.ts.map +1 -1
- package/dist/tools/write-file.js +46 -2
- package/dist/tools/write-file.js.map +1 -1
- package/dist/types/app.d.ts +2 -3
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/config.d.ts +6 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/file-explorer.d.ts +14 -0
- package/dist/types/file-explorer.d.ts.map +1 -0
- package/dist/types/file-explorer.js +2 -0
- package/dist/types/file-explorer.js.map +1 -0
- package/dist/types/ui.d.ts +1 -2
- package/dist/types/ui.d.ts.map +1 -1
- package/dist/utils/completion-note.d.ts +3 -0
- package/dist/utils/completion-note.d.ts.map +1 -0
- package/dist/utils/completion-note.js +39 -0
- package/dist/utils/completion-note.js.map +1 -0
- package/dist/utils/file-tree.d.ts +37 -0
- package/dist/utils/file-tree.d.ts.map +1 -0
- package/dist/utils/file-tree.js +122 -0
- package/dist/utils/file-tree.js.map +1 -0
- package/dist/utils/indentation-normalizer.d.ts +10 -0
- package/dist/utils/indentation-normalizer.d.ts.map +1 -1
- package/dist/utils/indentation-normalizer.js +48 -0
- package/dist/utils/indentation-normalizer.js.map +1 -1
- package/dist/vscode/protocol.d.ts +5 -1
- package/dist/vscode/protocol.d.ts.map +1 -1
- package/dist/vscode/vscode-server.d.ts +4 -0
- package/dist/vscode/vscode-server.d.ts.map +1 -1
- package/dist/vscode/vscode-server.js +10 -0
- package/dist/vscode/vscode-server.js.map +1 -1
- package/dist/wizards/mcp-wizard.d.ts.map +1 -1
- package/dist/wizards/mcp-wizard.js +1 -1
- package/dist/wizards/mcp-wizard.js.map +1 -1
- package/dist/wizards/provider-wizard.d.ts.map +1 -1
- package/dist/wizards/provider-wizard.js +1 -1
- package/dist/wizards/provider-wizard.js.map +1 -1
- package/dist/wizards/templates/provider-templates.d.ts.map +1 -1
- package/dist/wizards/templates/provider-templates.js +73 -8
- package/dist/wizards/templates/provider-templates.js.map +1 -1
- package/dist/wizards/validation.d.ts +3 -1
- package/dist/wizards/validation.d.ts.map +1 -1
- package/dist/wizards/validation.js +6 -0
- package/dist/wizards/validation.js.map +1 -1
- package/package.json +10 -7
- package/source/app/prompts/main-prompt.md +75 -68
- package/dist/commands/nanocoder-shape.d.ts +0 -3
- package/dist/commands/nanocoder-shape.d.ts.map +0 -1
- package/dist/commands/nanocoder-shape.js +0 -46
- package/dist/commands/nanocoder-shape.js.map +0 -1
- package/dist/commands/theme.d.ts +0 -3
- package/dist/commands/theme.d.ts.map +0 -1
- package/dist/commands/theme.js.map +0 -1
- package/dist/commands/title-shape.d.ts +0 -3
- package/dist/commands/title-shape.d.ts.map +0 -1
- package/dist/commands/title-shape.js +0 -54
- package/dist/commands/title-shape.js.map +0 -1
- package/dist/components/nanocoder-shape-selector.d.ts +0 -8
- package/dist/components/nanocoder-shape-selector.d.ts.map +0 -1
- package/dist/components/nanocoder-shape-selector.js +0 -61
- package/dist/components/nanocoder-shape-selector.js.map +0 -1
- package/dist/components/theme-selector.d.ts +0 -8
- package/dist/components/theme-selector.d.ts.map +0 -1
- package/dist/components/theme-selector.js +0 -51
- package/dist/components/theme-selector.js.map +0 -1
- package/dist/components/title-shape-selector.d.ts +0 -8
- package/dist/components/title-shape-selector.d.ts.map +0 -1
- package/dist/components/title-shape-selector.js +0 -108
- package/dist/components/title-shape-selector.js.map +0 -1
- package/dist/tools/git/git-branch-suggest.d.ts +0 -9
- package/dist/tools/git/git-branch-suggest.d.ts.map +0 -1
- package/dist/tools/git/git-branch-suggest.js +0 -326
- package/dist/tools/git/git-branch-suggest.js.map +0 -1
- package/dist/tools/git/git-create-pr.d.ts +0 -9
- package/dist/tools/git/git-create-pr.d.ts.map +0 -1
- package/dist/tools/git/git-create-pr.js +0 -404
- package/dist/tools/git/git-create-pr.js.map +0 -1
- package/dist/tools/git/git-smart-commit.d.ts +0 -9
- package/dist/tools/git/git-smart-commit.d.ts.map +0 -1
- package/dist/tools/git/git-smart-commit.js +0 -308
- package/dist/tools/git/git-smart-commit.js.map +0 -1
- package/dist/tools/git/git-status-enhanced.d.ts +0 -9
- package/dist/tools/git/git-status-enhanced.d.ts.map +0 -1
- package/dist/tools/git/git-status-enhanced.js +0 -305
- package/dist/tools/git/git-status-enhanced.js.map +0 -1
- package/dist/tools/git/types.d.ts +0 -103
- package/dist/tools/git/types.d.ts.map +0 -1
- package/dist/tools/git/types.js +0 -7
- package/dist/tools/git/types.js.map +0 -1
- package/dist/utils/gradient-utils.d.ts +0 -25
- package/dist/utils/gradient-utils.d.ts.map +0 -1
- package/dist/utils/gradient-utils.js +0 -45
- package/dist/utils/gradient-utils.js.map +0 -1
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Git Create PR Tool
|
|
4
|
-
*
|
|
5
|
-
* Generates pull request templates with auto-generated descriptions,
|
|
6
|
-
* test plans, and reviewer suggestions based on commit history.
|
|
7
|
-
*/
|
|
8
|
-
import { Box, Text } from 'ink';
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import ToolMessage from '../../components/tool-message.js';
|
|
11
|
-
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
12
|
-
import { jsonSchema, tool } from '../../types/core.js';
|
|
13
|
-
import { execGit, getCommitsBetween, getCurrentBranch, getDefaultBranch, getSuggestedReviewers, isGitRepository, } from './utils.js';
|
|
14
|
-
/**
|
|
15
|
-
* Categorize commits by type
|
|
16
|
-
*/
|
|
17
|
-
function categorizeCommits(commits) {
|
|
18
|
-
const categories = new Map();
|
|
19
|
-
for (const commit of commits) {
|
|
20
|
-
const subject = commit.subject;
|
|
21
|
-
// Parse conventional commit format
|
|
22
|
-
const match = subject.match(/^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+?\))?(!)?:\s*(.+)/);
|
|
23
|
-
let category;
|
|
24
|
-
let description;
|
|
25
|
-
if (match) {
|
|
26
|
-
category = match[1];
|
|
27
|
-
description = match[4] || subject;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
// Non-conventional commit
|
|
31
|
-
category = 'other';
|
|
32
|
-
description = subject;
|
|
33
|
-
}
|
|
34
|
-
if (!categories.has(category)) {
|
|
35
|
-
categories.set(category, []);
|
|
36
|
-
}
|
|
37
|
-
categories.get(category)?.push(description);
|
|
38
|
-
}
|
|
39
|
-
return categories;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Generate PR title from commits
|
|
43
|
-
*/
|
|
44
|
-
function generatePRTitle(commits, branch) {
|
|
45
|
-
if (commits.length === 0) {
|
|
46
|
-
// Use branch name as fallback
|
|
47
|
-
const branchParts = branch.split('/');
|
|
48
|
-
const branchName = branchParts[branchParts.length - 1];
|
|
49
|
-
return (branchName
|
|
50
|
-
?.replace(/-/g, ' ')
|
|
51
|
-
.replace(/_/g, ' ')
|
|
52
|
-
.replace(/^\w/, c => c.toUpperCase()) || 'Update');
|
|
53
|
-
}
|
|
54
|
-
if (commits.length === 1) {
|
|
55
|
-
return commits[0].subject;
|
|
56
|
-
}
|
|
57
|
-
// Multiple commits - summarize
|
|
58
|
-
const categories = categorizeCommits(commits);
|
|
59
|
-
// Priority order for title
|
|
60
|
-
const titlePriority = ['feat', 'fix', 'refactor', 'perf', 'other'];
|
|
61
|
-
for (const category of titlePriority) {
|
|
62
|
-
const items = categories.get(category);
|
|
63
|
-
if (items && items.length > 0) {
|
|
64
|
-
if (items.length === 1) {
|
|
65
|
-
return items[0];
|
|
66
|
-
}
|
|
67
|
-
// Summarize multiple items
|
|
68
|
-
const prefix = category === 'feat' ? 'Add' : category === 'fix' ? 'Fix' : 'Update';
|
|
69
|
-
return `${prefix} ${items.length} ${category === 'feat' ? 'features' : 'changes'}`;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return commits[0].subject;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Generate PR summary from categorized commits
|
|
76
|
-
*/
|
|
77
|
-
function generateSummary(categories) {
|
|
78
|
-
const summary = [];
|
|
79
|
-
const categoryLabels = {
|
|
80
|
-
feat: 'New Features',
|
|
81
|
-
fix: 'Bug Fixes',
|
|
82
|
-
docs: 'Documentation',
|
|
83
|
-
style: 'Style Changes',
|
|
84
|
-
refactor: 'Code Refactoring',
|
|
85
|
-
perf: 'Performance Improvements',
|
|
86
|
-
test: 'Test Updates',
|
|
87
|
-
build: 'Build Changes',
|
|
88
|
-
ci: 'CI/CD Updates',
|
|
89
|
-
chore: 'Maintenance',
|
|
90
|
-
other: 'Other Changes',
|
|
91
|
-
};
|
|
92
|
-
for (const [category, items] of categories) {
|
|
93
|
-
const label = categoryLabels[category] || 'Changes';
|
|
94
|
-
summary.push(`**${label}:**`);
|
|
95
|
-
for (const item of items) {
|
|
96
|
-
summary.push(`- ${item}`);
|
|
97
|
-
}
|
|
98
|
-
summary.push('');
|
|
99
|
-
}
|
|
100
|
-
return summary;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Generate test plan suggestions
|
|
104
|
-
*/
|
|
105
|
-
function generateTestPlan(categories, changedFiles) {
|
|
106
|
-
const testPlan = [];
|
|
107
|
-
// Check if there are new features
|
|
108
|
-
if (categories.has('feat')) {
|
|
109
|
-
testPlan.push('- [ ] Verify new functionality works as expected');
|
|
110
|
-
testPlan.push('- [ ] Check for edge cases and error handling');
|
|
111
|
-
}
|
|
112
|
-
// Check if there are bug fixes
|
|
113
|
-
if (categories.has('fix')) {
|
|
114
|
-
testPlan.push('- [ ] Verify the bug is fixed');
|
|
115
|
-
testPlan.push('- [ ] Ensure no regression in related functionality');
|
|
116
|
-
}
|
|
117
|
-
// Check for UI changes
|
|
118
|
-
const hasUIChanges = changedFiles.some(f => f.includes('component') ||
|
|
119
|
-
f.endsWith('.tsx') ||
|
|
120
|
-
f.endsWith('.css') ||
|
|
121
|
-
f.endsWith('.scss'));
|
|
122
|
-
if (hasUIChanges) {
|
|
123
|
-
testPlan.push('- [ ] Visual inspection of UI changes');
|
|
124
|
-
testPlan.push('- [ ] Test responsive behavior');
|
|
125
|
-
}
|
|
126
|
-
// Check for API changes
|
|
127
|
-
const hasAPIChanges = changedFiles.some(f => f.includes('api') || f.includes('route') || f.includes('endpoint'));
|
|
128
|
-
if (hasAPIChanges) {
|
|
129
|
-
testPlan.push('- [ ] Test API endpoints');
|
|
130
|
-
testPlan.push('- [ ] Verify request/response format');
|
|
131
|
-
}
|
|
132
|
-
// Generic tests
|
|
133
|
-
testPlan.push('- [ ] Run existing test suite');
|
|
134
|
-
testPlan.push('- [ ] Build succeeds without errors');
|
|
135
|
-
return testPlan;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Detect breaking changes from commits
|
|
139
|
-
*/
|
|
140
|
-
function detectBreakingChanges(commits) {
|
|
141
|
-
const breakingChanges = [];
|
|
142
|
-
for (const commit of commits) {
|
|
143
|
-
// Check for breaking change indicator
|
|
144
|
-
if (commit.subject.includes('!:')) {
|
|
145
|
-
const match = commit.subject.match(/!:\s*(.+)/);
|
|
146
|
-
if (match) {
|
|
147
|
-
breakingChanges.push(match[1]);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// Check body for BREAKING CHANGE
|
|
151
|
-
if (commit.body.includes('BREAKING CHANGE')) {
|
|
152
|
-
const match = commit.body.match(/BREAKING CHANGE:\s*(.+)/);
|
|
153
|
-
if (match) {
|
|
154
|
-
breakingChanges.push(match[1]);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return breakingChanges;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Generate suggested labels based on changes
|
|
162
|
-
*/
|
|
163
|
-
function suggestLabels(categories) {
|
|
164
|
-
const labels = [];
|
|
165
|
-
if (categories.has('feat'))
|
|
166
|
-
labels.push('enhancement');
|
|
167
|
-
if (categories.has('fix'))
|
|
168
|
-
labels.push('bug');
|
|
169
|
-
if (categories.has('docs'))
|
|
170
|
-
labels.push('documentation');
|
|
171
|
-
if (categories.has('perf'))
|
|
172
|
-
labels.push('performance');
|
|
173
|
-
if (categories.has('test'))
|
|
174
|
-
labels.push('testing');
|
|
175
|
-
return labels;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Generate the full PR template
|
|
179
|
-
*/
|
|
180
|
-
async function generatePRTemplate(targetBranch, includeSummary) {
|
|
181
|
-
const currentBranch = await getCurrentBranch();
|
|
182
|
-
const commits = await getCommitsBetween(targetBranch);
|
|
183
|
-
// Get changed files from diff
|
|
184
|
-
let changedFiles = [];
|
|
185
|
-
try {
|
|
186
|
-
const diffFiles = await execGit([
|
|
187
|
-
'diff',
|
|
188
|
-
'--name-only',
|
|
189
|
-
`${targetBranch}...HEAD`,
|
|
190
|
-
]);
|
|
191
|
-
changedFiles = diffFiles.split('\n').filter(f => f.trim());
|
|
192
|
-
}
|
|
193
|
-
catch {
|
|
194
|
-
// May fail if target branch doesn't exist locally
|
|
195
|
-
}
|
|
196
|
-
const categories = categorizeCommits(commits);
|
|
197
|
-
const title = generatePRTitle(commits, currentBranch);
|
|
198
|
-
const summary = includeSummary ? generateSummary(categories) : [];
|
|
199
|
-
const testPlan = generateTestPlan(categories, changedFiles);
|
|
200
|
-
const breakingChanges = detectBreakingChanges(commits);
|
|
201
|
-
const suggestedReviewers = await getSuggestedReviewers(changedFiles.map(f => ({
|
|
202
|
-
path: f,
|
|
203
|
-
status: 'modified',
|
|
204
|
-
additions: 0,
|
|
205
|
-
deletions: 0,
|
|
206
|
-
isBinary: false,
|
|
207
|
-
})));
|
|
208
|
-
const labels = suggestLabels(categories);
|
|
209
|
-
return {
|
|
210
|
-
title,
|
|
211
|
-
summary: summary.join('\n'),
|
|
212
|
-
changes: Array.from(categories.entries()).flatMap(([cat, items]) => items.map(item => `${cat}: ${item}`)),
|
|
213
|
-
testPlan,
|
|
214
|
-
breakingChanges: breakingChanges.length > 0 ? breakingChanges : undefined,
|
|
215
|
-
suggestedReviewers: suggestedReviewers.length > 0 ? suggestedReviewers : undefined,
|
|
216
|
-
labels: labels.length > 0 ? labels : undefined,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Execute the git_create_pr tool
|
|
221
|
-
*/
|
|
222
|
-
const executeGitCreatePR = async (args) => {
|
|
223
|
-
// Check if we're in a git repository
|
|
224
|
-
if (!(await isGitRepository())) {
|
|
225
|
-
return 'Error: Not a git repository. Please run this command from within a git repository.';
|
|
226
|
-
}
|
|
227
|
-
const currentBranch = await getCurrentBranch();
|
|
228
|
-
// Determine target branch
|
|
229
|
-
let targetBranch = args.targetBranch;
|
|
230
|
-
if (!targetBranch) {
|
|
231
|
-
targetBranch = await getDefaultBranch();
|
|
232
|
-
}
|
|
233
|
-
// Check if on target branch
|
|
234
|
-
if (currentBranch === targetBranch) {
|
|
235
|
-
return `Error: Currently on ${targetBranch}. Please switch to a feature branch before creating a PR.`;
|
|
236
|
-
}
|
|
237
|
-
// Generate PR template
|
|
238
|
-
const template = await generatePRTemplate(targetBranch, args.includeSummary !== false);
|
|
239
|
-
// Build response
|
|
240
|
-
const responseLines = [];
|
|
241
|
-
responseLines.push('=== Pull Request Template ===');
|
|
242
|
-
responseLines.push('');
|
|
243
|
-
responseLines.push(`Branch: ${currentBranch} -> ${targetBranch}`);
|
|
244
|
-
responseLines.push(`Draft: ${args.draft ? 'Yes' : 'No'}`);
|
|
245
|
-
responseLines.push('');
|
|
246
|
-
responseLines.push('--- Title ---');
|
|
247
|
-
responseLines.push(template.title);
|
|
248
|
-
responseLines.push('');
|
|
249
|
-
responseLines.push('--- Description ---');
|
|
250
|
-
responseLines.push('## Summary');
|
|
251
|
-
if (template.summary) {
|
|
252
|
-
responseLines.push(template.summary);
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
responseLines.push('<!-- Add a summary of changes -->');
|
|
256
|
-
}
|
|
257
|
-
responseLines.push('');
|
|
258
|
-
responseLines.push('## Test Plan');
|
|
259
|
-
for (const item of template.testPlan) {
|
|
260
|
-
responseLines.push(item);
|
|
261
|
-
}
|
|
262
|
-
responseLines.push('');
|
|
263
|
-
if (template.breakingChanges && template.breakingChanges.length > 0) {
|
|
264
|
-
responseLines.push('## Breaking Changes');
|
|
265
|
-
for (const change of template.breakingChanges) {
|
|
266
|
-
responseLines.push(`- ${change}`);
|
|
267
|
-
}
|
|
268
|
-
responseLines.push('');
|
|
269
|
-
}
|
|
270
|
-
if (template.suggestedReviewers && template.suggestedReviewers.length > 0) {
|
|
271
|
-
responseLines.push('--- Suggested Reviewers ---');
|
|
272
|
-
for (const reviewer of template.suggestedReviewers) {
|
|
273
|
-
responseLines.push(` - ${reviewer}`);
|
|
274
|
-
}
|
|
275
|
-
responseLines.push('');
|
|
276
|
-
}
|
|
277
|
-
if (template.labels && template.labels.length > 0) {
|
|
278
|
-
responseLines.push('--- Suggested Labels ---');
|
|
279
|
-
responseLines.push(` ${template.labels.join(', ')}`);
|
|
280
|
-
responseLines.push('');
|
|
281
|
-
}
|
|
282
|
-
responseLines.push('--- Commands ---');
|
|
283
|
-
responseLines.push('');
|
|
284
|
-
responseLines.push('To create this PR using GitHub CLI:');
|
|
285
|
-
const draftFlag = args.draft ? ' --draft' : '';
|
|
286
|
-
responseLines.push(`gh pr create --title "${template.title}" --body "..." --base ${targetBranch}${draftFlag}`);
|
|
287
|
-
responseLines.push('');
|
|
288
|
-
responseLines.push('Or copy the template above and create the PR manually on GitHub.');
|
|
289
|
-
return responseLines.join('\n');
|
|
290
|
-
};
|
|
291
|
-
// AI SDK tool definition with execute function
|
|
292
|
-
const gitCreatePRCoreTool = tool({
|
|
293
|
-
description: 'Generate a pull request template with auto-generated description, test plan, and reviewer suggestions based on commit history.',
|
|
294
|
-
inputSchema: jsonSchema({
|
|
295
|
-
type: 'object',
|
|
296
|
-
properties: {
|
|
297
|
-
targetBranch: {
|
|
298
|
-
type: 'string',
|
|
299
|
-
description: 'The target branch for the PR (e.g., "main", "develop"). Defaults to the default branch.',
|
|
300
|
-
},
|
|
301
|
-
draft: {
|
|
302
|
-
type: 'boolean',
|
|
303
|
-
description: 'Whether to create the PR as a draft. Default: false',
|
|
304
|
-
},
|
|
305
|
-
includeSummary: {
|
|
306
|
-
type: 'boolean',
|
|
307
|
-
description: 'Whether to include a detailed summary of changes. Default: true',
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
required: [],
|
|
311
|
-
}),
|
|
312
|
-
execute: async (args, _options) => {
|
|
313
|
-
return await executeGitCreatePR(args);
|
|
314
|
-
},
|
|
315
|
-
});
|
|
316
|
-
// Formatter component
|
|
317
|
-
const GitCreatePRFormatter = React.memo(({ args, result }) => {
|
|
318
|
-
const themeContext = React.useContext(ThemeContext);
|
|
319
|
-
if (!themeContext) {
|
|
320
|
-
throw new Error('ThemeContext is required');
|
|
321
|
-
}
|
|
322
|
-
const { colors } = themeContext;
|
|
323
|
-
const [preview, setPreview] = React.useState(null);
|
|
324
|
-
const [isLoading, setIsLoading] = React.useState(false);
|
|
325
|
-
// Generate preview before execution (when no result)
|
|
326
|
-
React.useEffect(() => {
|
|
327
|
-
if (!result && !preview && !isLoading) {
|
|
328
|
-
const generatePreview = async () => {
|
|
329
|
-
setIsLoading(true);
|
|
330
|
-
try {
|
|
331
|
-
// Run the same logic to generate a preview
|
|
332
|
-
const previewResult = await executeGitCreatePR(args);
|
|
333
|
-
setPreview(previewResult);
|
|
334
|
-
}
|
|
335
|
-
catch {
|
|
336
|
-
// Silently fail on preview generation errors
|
|
337
|
-
}
|
|
338
|
-
finally {
|
|
339
|
-
setIsLoading(false);
|
|
340
|
-
}
|
|
341
|
-
};
|
|
342
|
-
void generatePreview();
|
|
343
|
-
}
|
|
344
|
-
}, [result, preview, isLoading, args]);
|
|
345
|
-
// Use either the actual result or the preview
|
|
346
|
-
const displayResult = result || preview;
|
|
347
|
-
// Parse result for display
|
|
348
|
-
let title = '';
|
|
349
|
-
let description = '';
|
|
350
|
-
let targetBranch = args.targetBranch || 'main';
|
|
351
|
-
let hasBreakingChanges = false;
|
|
352
|
-
if (displayResult) {
|
|
353
|
-
const titleMatch = displayResult.match(/--- Title ---\n(.+)/);
|
|
354
|
-
if (titleMatch)
|
|
355
|
-
title = titleMatch[1];
|
|
356
|
-
// Extract description (between --- Description --- and the end or next section)
|
|
357
|
-
const descMatch = displayResult.match(/--- Description ---\n([\s\S]*?)(?:\n---|\n\nTo create|$)/);
|
|
358
|
-
if (descMatch) {
|
|
359
|
-
// Get first few lines of description for preview
|
|
360
|
-
const descLines = descMatch[1].trim().split('\n').slice(0, 5);
|
|
361
|
-
description = descLines.join('\n');
|
|
362
|
-
if (descMatch[1].trim().split('\n').length > 5) {
|
|
363
|
-
description += '\n...';
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
const branchMatch = displayResult.match(/Branch: .+ -> (.+)/);
|
|
367
|
-
if (branchMatch)
|
|
368
|
-
targetBranch = branchMatch[1];
|
|
369
|
-
hasBreakingChanges = displayResult.includes('Breaking Changes');
|
|
370
|
-
}
|
|
371
|
-
const messageContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.tool, children: "\u2692 git_create_pr" }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Target: " }), _jsx(Text, { color: colors.primary, children: targetBranch })] }), isLoading && (_jsx(Box, { children: _jsx(Text, { color: colors.secondary, children: "Generating preview..." }) })), args.draft && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Draft: " }), _jsx(Text, { color: colors.text, children: "Yes" })] })), title && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Title: " }), _jsx(Text, { color: colors.text, children: title.length > 40 ? title.substring(0, 40) + '...' : title })] })), description && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.secondary, children: "Description:" }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: colors.text, children: description }) })] })), hasBreakingChanges && (_jsx(Box, { children: _jsx(Text, { color: colors.error, children: "Contains breaking changes!" }) }))] }));
|
|
372
|
-
return _jsx(ToolMessage, { message: messageContent, hideBox: true });
|
|
373
|
-
});
|
|
374
|
-
const formatter = (args, result) => {
|
|
375
|
-
return _jsx(GitCreatePRFormatter, { args: args, result: result });
|
|
376
|
-
};
|
|
377
|
-
const validator = async (args) => {
|
|
378
|
-
// Check if in git repository
|
|
379
|
-
if (!(await isGitRepository())) {
|
|
380
|
-
return {
|
|
381
|
-
valid: false,
|
|
382
|
-
error: 'git Not in a git repository',
|
|
383
|
-
};
|
|
384
|
-
}
|
|
385
|
-
// Check if not on default branch
|
|
386
|
-
const currentBranch = await getCurrentBranch();
|
|
387
|
-
const defaultBranch = await getDefaultBranch();
|
|
388
|
-
const targetBranch = args.targetBranch || defaultBranch;
|
|
389
|
-
if (currentBranch === targetBranch) {
|
|
390
|
-
return {
|
|
391
|
-
valid: false,
|
|
392
|
-
error: `git Currently on ${targetBranch}. Switch to a feature branch first.`,
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
return { valid: true };
|
|
396
|
-
};
|
|
397
|
-
// Export the tool using NanocoderToolExport pattern
|
|
398
|
-
export const gitCreatePRTool = {
|
|
399
|
-
name: 'git_create_pr',
|
|
400
|
-
tool: gitCreatePRCoreTool,
|
|
401
|
-
formatter,
|
|
402
|
-
validator,
|
|
403
|
-
};
|
|
404
|
-
//# sourceMappingURL=git-create-pr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-create-pr.js","sourceRoot":"","sources":["../../../source/tools/git/git-create-pr.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Smart Commit Tool
|
|
3
|
-
*
|
|
4
|
-
* Analyzes staged changes and generates conventional commit messages
|
|
5
|
-
* following the Conventional Commits specification.
|
|
6
|
-
*/
|
|
7
|
-
import type { NanocoderToolExport } from '../../types/core.js';
|
|
8
|
-
export declare const gitSmartCommitTool: NanocoderToolExport;
|
|
9
|
-
//# sourceMappingURL=git-smart-commit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-smart-commit.d.ts","sourceRoot":"","sources":["../../../source/tools/git/git-smart-commit.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAmatD,eAAO,MAAM,kBAAkB,EAAE,mBAKhC,CAAC"}
|