- Add full Telegram bot functionality with Z.AI API integration
- Implement 4 tools: Bash, FileEdit, WebSearch, Git
- Add 3 agents: Code Reviewer, Architect, DevOps Engineer
- Add 6 skills for common coding tasks
- Add systemd service file for 24/7 operation
- Add nginx configuration for HTTPS webhook
- Add comprehensive documentation
- Implement WebSocket server for real-time updates
- Add logging system with Winston
- Add environment validation
🤖 zCode CLI X - Agentic coder with Z.AI + Telegram integration
28 lines
934 B
JavaScript
28 lines
934 B
JavaScript
import tabsToSpaces from 'convert-to-spaces';
|
|
const generateLineNumbers = (line, around) => {
|
|
const lineNumbers = [];
|
|
const min = line - around;
|
|
const max = line + around;
|
|
for (let lineNumber = min; lineNumber <= max; lineNumber++) {
|
|
lineNumbers.push(lineNumber);
|
|
}
|
|
return lineNumbers;
|
|
};
|
|
const codeExcerpt = (source, line, options = {}) => {
|
|
var _a;
|
|
if (typeof source !== 'string') {
|
|
throw new TypeError('Source code is missing.');
|
|
}
|
|
if (!line || line < 1) {
|
|
throw new TypeError('Line number must start from `1`.');
|
|
}
|
|
const lines = tabsToSpaces(source).split(/\r?\n/);
|
|
if (line > lines.length) {
|
|
return;
|
|
}
|
|
return generateLineNumbers(line, (_a = options.around) !== null && _a !== void 0 ? _a : 3)
|
|
.filter(line => lines[line - 1] !== undefined)
|
|
.map(line => ({ line, value: lines[line - 1] }));
|
|
};
|
|
export default codeExcerpt;
|