- 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
31 lines
1010 B
JavaScript
31 lines
1010 B
JavaScript
import { HttpRequest } from "@smithy/protocol-http";
|
|
import { isWebSocketRequest } from "./utils";
|
|
export class WebsocketSignatureV4 {
|
|
signer;
|
|
constructor(options) {
|
|
this.signer = options.signer;
|
|
}
|
|
presign(originalRequest, options = {}) {
|
|
return this.signer.presign(originalRequest, options);
|
|
}
|
|
async sign(toSign, options) {
|
|
if (HttpRequest.isInstance(toSign) && isWebSocketRequest(toSign)) {
|
|
const signedRequest = await this.signer.presign({ ...toSign, body: "" }, {
|
|
...options,
|
|
expiresIn: 60,
|
|
unsignableHeaders: new Set(Object.keys(toSign.headers).filter((header) => header !== "host")),
|
|
});
|
|
return {
|
|
...signedRequest,
|
|
body: toSign.body,
|
|
};
|
|
}
|
|
else {
|
|
return this.signer.sign(toSign, options);
|
|
}
|
|
}
|
|
signMessage(message, args) {
|
|
return this.signer.signMessage(message, args);
|
|
}
|
|
}
|