- 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
21 lines
854 B
JavaScript
21 lines
854 B
JavaScript
import { isArrayBuffer } from "@smithy/is-array-buffer";
|
|
import { toHex } from "@smithy/util-hex-encoding";
|
|
import { toUint8Array } from "@smithy/util-utf8";
|
|
import { SHA256_HEADER, UNSIGNED_PAYLOAD } from "./constants";
|
|
export const getPayloadHash = async ({ headers, body }, hashConstructor) => {
|
|
for (const headerName of Object.keys(headers)) {
|
|
if (headerName.toLowerCase() === SHA256_HEADER) {
|
|
return headers[headerName];
|
|
}
|
|
}
|
|
if (body == undefined) {
|
|
return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
|
|
}
|
|
else if (typeof body === "string" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {
|
|
const hashCtor = new hashConstructor();
|
|
hashCtor.update(toUint8Array(body));
|
|
return toHex(await hashCtor.digest());
|
|
}
|
|
return UNSIGNED_PAYLOAD;
|
|
};
|