- 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
24 lines
1.0 KiB
JavaScript
24 lines
1.0 KiB
JavaScript
import { timing } from "./timing";
|
|
const DEFER_EVENT_LISTENER_TIME = 3000;
|
|
export const setSocketTimeout = (request, reject, timeoutInMs = 0) => {
|
|
const registerTimeout = (offset) => {
|
|
const timeout = timeoutInMs - offset;
|
|
const onTimeout = () => {
|
|
request.destroy();
|
|
reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: "TimeoutError" }));
|
|
};
|
|
if (request.socket) {
|
|
request.socket.setTimeout(timeout, onTimeout);
|
|
request.on("close", () => request.socket?.removeListener("timeout", onTimeout));
|
|
}
|
|
else {
|
|
request.setTimeout(timeout, onTimeout);
|
|
}
|
|
};
|
|
if (0 < timeoutInMs && timeoutInMs < 6000) {
|
|
registerTimeout(0);
|
|
return 0;
|
|
}
|
|
return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);
|
|
};
|