- 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
32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
import { HttpRequest } from "@smithy/protocol-http";
|
|
export const websocketEndpointMiddleware = (config, options) => (next) => (args) => {
|
|
const { request } = args;
|
|
if (HttpRequest.isInstance(request) &&
|
|
config.requestHandler.metadata?.handlerProtocol?.toLowerCase().includes("websocket")) {
|
|
request.protocol = "wss:";
|
|
request.method = "GET";
|
|
request.path = `${request.path}-websocket`;
|
|
const { headers } = request;
|
|
delete headers["content-type"];
|
|
delete headers["x-amz-content-sha256"];
|
|
for (const name of Object.keys(headers)) {
|
|
if (name.indexOf(options.headerPrefix) === 0) {
|
|
const chunkedName = name.replace(options.headerPrefix, "");
|
|
request.query[chunkedName] = headers[name];
|
|
}
|
|
}
|
|
if (headers["x-amz-user-agent"]) {
|
|
request.query["user-agent"] = headers["x-amz-user-agent"];
|
|
}
|
|
request.headers = { host: headers.host ?? request.hostname };
|
|
}
|
|
return next(args);
|
|
};
|
|
export const websocketEndpointMiddlewareOptions = {
|
|
name: "websocketEndpointMiddleware",
|
|
tags: ["WEBSOCKET", "EVENT_STREAM"],
|
|
relation: "after",
|
|
toMiddleware: "eventStreamHeaderMiddleware",
|
|
override: true,
|
|
};
|