codeep 1.0.69 → 1.0.71
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 +9 -1
- package/dist/app.js +21 -7
- package/dist/components/Help.js +1 -1
- package/dist/components/Input.js +4 -0
- package/dist/components/Settings.js +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -364,6 +364,7 @@ After installation, `codeep` is available globally in your terminal. Simply run
|
|
|
364
364
|
|
|
365
365
|
| Command | Description |
|
|
366
366
|
|---------|-------------|
|
|
367
|
+
| `/grant` | Grant write permission for agent (opens permission dialog) |
|
|
367
368
|
| `/agent <task>` | Run agent for a specific task (manual mode) |
|
|
368
369
|
| `/agent-dry <task>` | Preview what agent would do without executing |
|
|
369
370
|
| `/agent-stop` | Stop a running agent |
|
|
@@ -508,7 +509,7 @@ With write access enabled:
|
|
|
508
509
|
| API Timeout | 60000ms | Request timeout |
|
|
509
510
|
| API Rate Limit | 30/min | Max API calls per minute |
|
|
510
511
|
| Command Rate Limit | 100/min | Max commands per minute |
|
|
511
|
-
| Agent Mode | ON | `ON` = agent runs
|
|
512
|
+
| Agent Mode | ON | `ON` = agent runs automatically (requires write permission via `/grant`), `Manual` = use /agent |
|
|
512
513
|
| Agent API Timeout | 180000ms | Timeout per agent API call (auto-adjusted for complexity) |
|
|
513
514
|
| Agent Max Duration | 20 min | Maximum time for agent to run (5-60 min) |
|
|
514
515
|
| Agent Max Iterations | 100 | Maximum agent iterations (10-200) |
|
|
@@ -522,6 +523,13 @@ With write access enabled:
|
|
|
522
523
|
|
|
523
524
|
### Autonomous Coding (Agent Mode ON)
|
|
524
525
|
|
|
526
|
+
First, grant write permission (required for Agent Mode ON to work):
|
|
527
|
+
|
|
528
|
+
```
|
|
529
|
+
> /grant
|
|
530
|
+
# Opens permission dialog - select "Read + Write" for full agent access
|
|
531
|
+
```
|
|
532
|
+
|
|
525
533
|
With write access enabled, just describe what you want:
|
|
526
534
|
|
|
527
535
|
```
|
package/dist/app.js
CHANGED
|
@@ -117,7 +117,7 @@ export const App = () => {
|
|
|
117
117
|
if (agentMode === 'on' && !hasWrite) {
|
|
118
118
|
setTimeout(() => {
|
|
119
119
|
setNotificationDuration(8000);
|
|
120
|
-
setNotification('⚠️ Agent Mode
|
|
120
|
+
setNotification('⚠️ Agent Mode ON: Needs write permission to work. Use /grant to enable or /agent for manual mode.');
|
|
121
121
|
}, 500);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -134,7 +134,7 @@ export const App = () => {
|
|
|
134
134
|
if (agentMode === 'on') {
|
|
135
135
|
setTimeout(() => {
|
|
136
136
|
setNotificationDuration(8000);
|
|
137
|
-
setNotification('⚠️ Agent Mode
|
|
137
|
+
setNotification('⚠️ Agent Mode ON: No project detected here. Open terminal in a project folder and run codeep there.');
|
|
138
138
|
}, 500);
|
|
139
139
|
}
|
|
140
140
|
}
|
|
@@ -414,10 +414,10 @@ export const App = () => {
|
|
|
414
414
|
logger.debug(`[handleSubmit] agentMode=${agentMode}, hasWriteAccess=${hasWriteAccess}, hasProjectContext=${!!projectContext}`);
|
|
415
415
|
if (agentMode === 'on') {
|
|
416
416
|
if (!projectContext) {
|
|
417
|
-
notify('⚠️ Agent Mode ON:
|
|
417
|
+
notify('⚠️ Agent Mode ON: No project detected. Open terminal in a project folder and run codeep there.', 8000);
|
|
418
418
|
}
|
|
419
419
|
else if (!hasWriteAccess) {
|
|
420
|
-
notify('⚠️ Agent Mode ON:
|
|
420
|
+
notify('⚠️ Agent Mode ON: Needs write permission. Use /grant to enable.', 8000);
|
|
421
421
|
}
|
|
422
422
|
else {
|
|
423
423
|
notify('✓ Using agent mode (change in /settings)');
|
|
@@ -624,6 +624,20 @@ export const App = () => {
|
|
|
624
624
|
case '/settings':
|
|
625
625
|
setScreen('settings');
|
|
626
626
|
break;
|
|
627
|
+
case '/grant': {
|
|
628
|
+
// Grant write permission for agent mode
|
|
629
|
+
if (!projectContext) {
|
|
630
|
+
notify('No project detected. Open terminal in a project folder and run codeep there.');
|
|
631
|
+
break;
|
|
632
|
+
}
|
|
633
|
+
if (hasWriteAccess) {
|
|
634
|
+
notify('Write permission already granted. Agent Mode is ready.');
|
|
635
|
+
break;
|
|
636
|
+
}
|
|
637
|
+
// Open permission dialog to grant write access
|
|
638
|
+
setScreen('permission');
|
|
639
|
+
break;
|
|
640
|
+
}
|
|
627
641
|
case '/login':
|
|
628
642
|
setScreen('login');
|
|
629
643
|
break;
|
|
@@ -1281,7 +1295,7 @@ export const App = () => {
|
|
|
1281
1295
|
const agentMode = config.get('agentMode');
|
|
1282
1296
|
if (agentMode === 'on' && !writeGranted) {
|
|
1283
1297
|
setTimeout(() => {
|
|
1284
|
-
notify('⚠️ Agent Mode
|
|
1298
|
+
notify('⚠️ Agent Mode ON: Needs write permission to work. Use /grant to enable or /agent for manual mode.', 8000);
|
|
1285
1299
|
}, 100);
|
|
1286
1300
|
}
|
|
1287
1301
|
}
|
|
@@ -1291,7 +1305,7 @@ export const App = () => {
|
|
|
1291
1305
|
const agentMode = config.get('agentMode');
|
|
1292
1306
|
if (agentMode === 'on') {
|
|
1293
1307
|
setTimeout(() => {
|
|
1294
|
-
notify('⚠️ Agent Mode
|
|
1308
|
+
notify('⚠️ Agent Mode ON: Permission denied. Use /grant to try again or /agent for manual mode.', 8000);
|
|
1295
1309
|
}, 100);
|
|
1296
1310
|
}
|
|
1297
1311
|
}
|
|
@@ -1394,7 +1408,7 @@ export const App = () => {
|
|
|
1394
1408
|
const actionColor = change.action === 'delete' ? 'red' : change.action === 'edit' ? 'yellow' : 'green';
|
|
1395
1409
|
const actionLabel = change.action === 'delete' ? 'DELETE' : change.action === 'edit' ? 'EDIT' : 'CREATE';
|
|
1396
1410
|
return (_jsxs(Text, { children: ["\u2022 ", _jsxs(Text, { color: actionColor, children: ["[", actionLabel, "]"] }), " ", change.path, change.action !== 'delete' && change.content.includes('\n') && ` (${change.content.split('\n').length} lines)`] }, i));
|
|
1397
|
-
}), _jsx(Text, { children: " " }), _jsxs(Text, { children: ["Apply changes? ", _jsx(Text, { color: "#f02a30", bold: true, children: "[Y/n]" })] }), _jsx(Text, { color: "gray", children: "Press Y to apply, N or Esc to reject" })] })), notification && (_jsx(Box, { justifyContent: "center", children: _jsx(Text, { color: "cyan", children: notification }) })), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "#f02a30", children: '─'.repeat(Math.max(20, stdout?.columns || 80)) }), _jsx(Box, { paddingX: 1, children: _jsx(ChatInput, { onSubmit: handleSubmit, disabled: isLoading || isAgentRunning || pendingFileChanges.length > 0, history: inputHistory, clearTrigger: clearInputTrigger }) }), _jsx(Text, { color: "#f02a30", children: '─'.repeat(Math.max(20, stdout?.columns || 80)) })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", bold: true, children: "Ctrl+V" }), _jsx(Text, { children: " Paste " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Ctrl+L" }), _jsx(Text, { children: " Clear " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Esc" }), _jsx(Text, { children: " Cancel " }), _jsx(Text, { color: "#f02a30", bold: true, children: "\u2191\u2193" }), _jsx(Text, { children: " History " }), _jsx(Text, { color: "#f02a30", bold: true, children: "/help" }), _jsx(Text, { children: " Commands" })] }) }), _jsx(Box, { children: config.get('agentMode') === 'on' ? (hasWriteAccess && projectContext ? (_jsx(Text, { color: "green", children: "Agent: ON \u2713" })) : (_jsxs(Text, { color: "yellow", children: ["Agent: ON (
|
|
1411
|
+
}), _jsx(Text, { children: " " }), _jsxs(Text, { children: ["Apply changes? ", _jsx(Text, { color: "#f02a30", bold: true, children: "[Y/n]" })] }), _jsx(Text, { color: "gray", children: "Press Y to apply, N or Esc to reject" })] })), notification && (_jsx(Box, { justifyContent: "center", children: _jsx(Text, { color: "cyan", children: notification }) })), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "#f02a30", children: '─'.repeat(Math.max(20, stdout?.columns || 80)) }), _jsx(Box, { paddingX: 1, children: _jsx(ChatInput, { onSubmit: handleSubmit, disabled: isLoading || isAgentRunning || pendingFileChanges.length > 0, history: inputHistory, clearTrigger: clearInputTrigger }) }), _jsx(Text, { color: "#f02a30", children: '─'.repeat(Math.max(20, stdout?.columns || 80)) })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", bold: true, children: "Ctrl+V" }), _jsx(Text, { children: " Paste " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Ctrl+L" }), _jsx(Text, { children: " Clear " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Esc" }), _jsx(Text, { children: " Cancel " }), _jsx(Text, { color: "#f02a30", bold: true, children: "\u2191\u2193" }), _jsx(Text, { children: " History " }), _jsx(Text, { color: "#f02a30", bold: true, children: "/help" }), _jsx(Text, { children: " Commands" })] }) }), _jsx(Box, { children: config.get('agentMode') === 'on' ? (hasWriteAccess && projectContext ? (_jsx(Text, { color: "green", children: "Agent: ON \u2713" })) : (_jsxs(Text, { color: "yellow", children: ["Agent: ON (", !projectContext ? 'no project - run codeep in project folder' : 'no permission - use /grant', ")"] }))) : (_jsx(Text, { color: "gray", children: "Agent: Manual (use /agent)" })) })] })] }));
|
|
1398
1412
|
};
|
|
1399
1413
|
// Model selection component
|
|
1400
1414
|
const ModelSelect = ({ onClose, notify }) => {
|
package/dist/components/Help.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Text, Box } from 'ink';
|
|
3
|
-
export const Help = () => (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#f02a30", padding: 1, children: [_jsx(Text, { color: "#f02a30", bold: true, children: "Commands" }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/help" }), " - Show this help"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/status" }), " - Show current status"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/version" }), " - Show version info"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/update" }), " - Check for updates"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/model" }), " - Switch model"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/protocol" }), " - Switch API protocol"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/provider" }), " - Switch API provider"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/lang" }), " - Set response language"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/settings" }), " - Adjust temp, tokens, timeout, rate limits"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/sessions" }), " - Save/load chat sessions"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/sessions delete" }), " ", '<name>', " - Delete a session"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/rename" }), " ", '<name>', " - Rename current session"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/search" }), " ", '<term>', " - Search through messages (e.g. /search error)"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/export" }), " - Export chat to MD/JSON/TXT format"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/diff" }), " [--staged] - Review git changes with AI"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/commit" }), " - Generate commit message from staged changes"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/apply" }), " - Apply file changes from AI response"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/copy" }), " [n] - Copy code block [n] to clipboard"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/agent" }), " ", '<task>', " - Start autonomous agent for task"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/agent-dry" }), " ", '<task>', " - Preview agent actions (no changes)"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/agent-stop" }), " - Stop running agent"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/clear" }), " - Clear chat history"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/login" }), " - Login with different key"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/logout" }), " - Logout and clear key"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/exit" }), " - Quit application"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Shortcuts" }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "\u2191/\u2193" }), " - Navigate input history or command suggestions"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "Tab" }), " - Autocomplete selected command"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "Ctrl+L" }), " - Clear chat (same as /clear)"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "Escape" }), " - Cancel request"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Code Blocks" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Code blocks are numbered [0], [1], etc." }), _jsxs(Text, { children: ["Use ", _jsx(Text, { color: "#f02a30", children: "/copy" }), " to copy last block, ", _jsx(Text, { color: "#f02a30", children: "/copy 0" }), " for first"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Project Context" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "When started in a project directory, Codeep can:" }), _jsx(Text, { children: " \u2022 Auto-detect file paths in your messages" }), _jsx(Text, { children: " \u2022 Attach file contents automatically" }), _jsx(Text, { children: " \u2022 Understand your project structure" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Examples:" }), _jsxs(Text, { children: [" ", _jsx(Text, { children: "\"check src/app.tsx\"" }), " - reads and analyzes file"] }), _jsxs(Text, { children: [" ", _jsx(Text, { children: "\"what does package.json contain\"" }), " - shows file"] }), _jsxs(Text, { children: [" ", _jsx(Text, { children: "\"improve error handling\"" }), " - AI knows project"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Agent Mode" }), _jsx(Text, { children: " " }), _jsxs(Text, { children: ["Two modes available in ", _jsx(Text, { color: "#f02a30", children: "/settings" }), ":"] }), _jsxs(Text, { children: [" \u2022 ", _jsx(Text, { color: "green", bold: true, children: "ON" }), " - Agent runs automatically on every message"] }), _jsxs(Text, { children: [" \u2022 ", _jsx(Text, { color: "yellow", bold: true, children: "Manual" }), " - Agent runs only with /agent command"] }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Agent capabilities:" }), _jsx(Text, { children: " \u2022 Creates, edits, deletes files automatically" }), _jsx(Text, { children: " \u2022 Runs shell commands (npm, git, etc.)" }), _jsx(Text, { children: " \u2022 Loops until task is complete" }), _jsx(Text, { children: " \u2022 Shows progress and all actions taken" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Manual mode examples:" }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent" }), " \"add error handling to api.ts\""] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent" }), " \"run tests and fix failures\""] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent" }), " \"create a new React component for user profile\""] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent-dry" }), " \"refactor utils folder\" - preview only"] })] }));
|
|
3
|
+
export const Help = () => (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#f02a30", padding: 1, children: [_jsx(Text, { color: "#f02a30", bold: true, children: "Commands" }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/help" }), " - Show this help"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/status" }), " - Show current status"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/version" }), " - Show version info"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/update" }), " - Check for updates"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/model" }), " - Switch model"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/protocol" }), " - Switch API protocol"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/provider" }), " - Switch API provider"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/lang" }), " - Set response language"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/settings" }), " - Adjust temp, tokens, timeout, rate limits"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/sessions" }), " - Save/load chat sessions"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/sessions delete" }), " ", '<name>', " - Delete a session"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/rename" }), " ", '<name>', " - Rename current session"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/search" }), " ", '<term>', " - Search through messages (e.g. /search error)"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/export" }), " - Export chat to MD/JSON/TXT format"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/diff" }), " [--staged] - Review git changes with AI"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/commit" }), " - Generate commit message from staged changes"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/apply" }), " - Apply file changes from AI response"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/copy" }), " [n] - Copy code block [n] to clipboard"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/grant" }), " - Grant write permission for agent"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/agent" }), " ", '<task>', " - Start autonomous agent for task"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/agent-dry" }), " ", '<task>', " - Preview agent actions (no changes)"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/agent-stop" }), " - Stop running agent"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/clear" }), " - Clear chat history"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/login" }), " - Login with different key"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/logout" }), " - Logout and clear key"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "/exit" }), " - Quit application"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Shortcuts" }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "\u2191/\u2193" }), " - Navigate input history or command suggestions"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "Tab" }), " - Autocomplete selected command"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "Ctrl+L" }), " - Clear chat (same as /clear)"] }), _jsxs(Text, { children: [_jsx(Text, { color: "#f02a30", children: "Escape" }), " - Cancel request"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Code Blocks" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Code blocks are numbered [0], [1], etc." }), _jsxs(Text, { children: ["Use ", _jsx(Text, { color: "#f02a30", children: "/copy" }), " to copy last block, ", _jsx(Text, { color: "#f02a30", children: "/copy 0" }), " for first"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Project Context" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "When started in a project directory, Codeep can:" }), _jsx(Text, { children: " \u2022 Auto-detect file paths in your messages" }), _jsx(Text, { children: " \u2022 Attach file contents automatically" }), _jsx(Text, { children: " \u2022 Understand your project structure" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Examples:" }), _jsxs(Text, { children: [" ", _jsx(Text, { children: "\"check src/app.tsx\"" }), " - reads and analyzes file"] }), _jsxs(Text, { children: [" ", _jsx(Text, { children: "\"what does package.json contain\"" }), " - shows file"] }), _jsxs(Text, { children: [" ", _jsx(Text, { children: "\"improve error handling\"" }), " - AI knows project"] }), _jsx(Text, { children: " " }), _jsx(Text, { color: "#f02a30", bold: true, children: "Agent Mode" }), _jsx(Text, { children: " " }), _jsxs(Text, { children: ["Two modes available in ", _jsx(Text, { color: "#f02a30", children: "/settings" }), ":"] }), _jsxs(Text, { children: [" \u2022 ", _jsx(Text, { color: "green", bold: true, children: "ON" }), " - Agent runs automatically on every message"] }), _jsxs(Text, { children: [" \u2022 ", _jsx(Text, { color: "yellow", bold: true, children: "Manual" }), " - Agent runs only with /agent command"] }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Agent capabilities:" }), _jsx(Text, { children: " \u2022 Creates, edits, deletes files automatically" }), _jsx(Text, { children: " \u2022 Runs shell commands (npm, git, etc.)" }), _jsx(Text, { children: " \u2022 Loops until task is complete" }), _jsx(Text, { children: " \u2022 Shows progress and all actions taken" }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Manual mode examples:" }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent" }), " \"add error handling to api.ts\""] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent" }), " \"run tests and fix failures\""] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent" }), " \"create a new React component for user profile\""] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "#f02a30", children: "/agent-dry" }), " \"refactor utils folder\" - preview only"] })] }));
|
package/dist/components/Input.js
CHANGED
|
@@ -23,6 +23,10 @@ const COMMANDS = [
|
|
|
23
23
|
{ cmd: '/apply', desc: 'Apply file changes' },
|
|
24
24
|
{ cmd: '/copy', desc: 'Copy code block' },
|
|
25
25
|
{ cmd: '/paste', desc: 'Paste from clipboard' },
|
|
26
|
+
{ cmd: '/grant', desc: 'Grant write permission for agent' },
|
|
27
|
+
{ cmd: '/agent', desc: 'Run agent for a task' },
|
|
28
|
+
{ cmd: '/agent-dry', desc: 'Preview agent actions' },
|
|
29
|
+
{ cmd: '/agent-stop', desc: 'Stop running agent' },
|
|
26
30
|
{ cmd: '/clear', desc: 'Clear chat' },
|
|
27
31
|
{ cmd: '/login', desc: 'Change API key' },
|
|
28
32
|
{ cmd: '/logout', desc: 'Logout' },
|
|
@@ -189,10 +189,10 @@ export const Settings = ({ onClose, notify, hasWriteAccess = false, hasProjectCo
|
|
|
189
189
|
const agentCanRun = agentMode === 'on' && hasWriteAccess && hasProjectContext;
|
|
190
190
|
const agentStatusMessage = agentMode === 'on'
|
|
191
191
|
? (!hasProjectContext
|
|
192
|
-
? '⚠️ No project detected -
|
|
192
|
+
? '⚠️ No project detected - open terminal in a project folder and run codeep there'
|
|
193
193
|
: (!hasWriteAccess
|
|
194
|
-
? '⚠️
|
|
195
|
-
: '✓ Agent will run automatically'))
|
|
196
|
-
: 'ℹ️
|
|
194
|
+
? '⚠️ Agent needs permission - use /grant to allow project access'
|
|
195
|
+
: '✓ Agent will run automatically on every message'))
|
|
196
|
+
: 'ℹ️ Manual mode - use /agent <task> to run agent';
|
|
197
197
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#f02a30", padding: 1, children: [_jsx(Text, { color: "#f02a30", bold: true, children: "Settings" }), _jsx(Text, { children: " " }), SETTINGS.map((setting, i) => (_jsx(Box, { children: _jsxs(Text, { children: [i === selected ? _jsx(Text, { color: "#f02a30", children: "\u25B8 " }) : ' ', _jsxs(Text, { color: i === selected ? '#f02a30' : undefined, children: [setting.label, ":"] }), _jsx(Text, { children: " " }), editing && i === selected ? (_jsx(Text, { color: "cyan", inverse: true, children: editValue || ' ' })) : (_jsx(Text, { color: "green", children: setting.value() })), i === selected && setting.type === 'number' && !editing && (_jsx(Text, { children: " (\u2190/\u2192 adjust, Enter to type)" })), i === selected && setting.type === 'select' && (_jsx(Text, { children: " (\u2190/\u2192 or Enter to toggle)" }))] }) }, setting.key))), _jsx(Text, { children: " " }), _jsx(Text, { color: agentCanRun ? 'green' : (agentMode === 'on' ? 'yellow' : 'gray'), children: agentStatusMessage }), _jsx(Text, { children: " " }), _jsx(Text, { children: "\u2191/\u2193 Navigate | \u2190/\u2192 Adjust | Enter Edit | Esc Close" })] }));
|
|
198
198
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeep",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.71",
|
|
4
4
|
"description": "AI-powered coding assistant built for the terminal. Multiple LLM providers, project-aware context, and a seamless development workflow.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|