- 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
42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
import { fromHex } from "@smithy/util-hex-encoding";
|
|
export class EventSigningTransformStream extends TransformStream {
|
|
constructor(initialSignature, messageSigner, eventStreamCodec, systemClockOffsetProvider) {
|
|
let priorSignature = initialSignature;
|
|
super({
|
|
start() { },
|
|
async transform(chunk, controller) {
|
|
try {
|
|
const now = new Date(Date.now() + (await systemClockOffsetProvider()));
|
|
const dateHeader = {
|
|
":date": { type: "timestamp", value: now },
|
|
};
|
|
const signedMessage = await messageSigner.sign({
|
|
message: {
|
|
body: chunk,
|
|
headers: dateHeader,
|
|
},
|
|
priorSignature: priorSignature,
|
|
}, {
|
|
signingDate: now,
|
|
});
|
|
priorSignature = signedMessage.signature;
|
|
const serializedSigned = eventStreamCodec.encode({
|
|
headers: {
|
|
...dateHeader,
|
|
":chunk-signature": {
|
|
type: "binary",
|
|
value: fromHex(signedMessage.signature),
|
|
},
|
|
},
|
|
body: chunk,
|
|
});
|
|
controller.enqueue(serializedSigned);
|
|
}
|
|
catch (error) {
|
|
controller.error(error);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
}
|