refactor(pi): standalone Zulip gateway service — replaces pi extension
CI / validate (push) Failing after 1s

Complete rewrite of the pi Zulip extension as a standalone Node.js service
with direct harness API calls. No longer depends on pi's session — survives
pi shutdown and restart.

Changes:
- src/index.ts: Complete rewrite — standalone process, not a pi extension
  - Direct harness API calls (POST /v1/chat/completions) with conversation memory
  - Per-sender conversation history (up to 50 messages)
  - Placeholder->edit streaming for Zulip DMs
  - Typing indicators via Zulip API
  - Health endpoint on :9200
  - Exponential backoff reconnection
  - Graceful shutdown on SIGINT/SIGTERM
- abiba-zulip.service: systemd service unit file
- README.md: Updated deployment instructions
- package.json/tsconfig.json: Updated for standalone app

Deploy: npm install -> npx tsc -> systemctl enable abiba-zulip
Closes issue #24 (Hermes parity for pi)
This commit is contained in:
root
2026-06-27 19:03:43 +00:00
committed by Abiba (pi)
parent 2301f4aab9
commit e946818375
6 changed files with 565 additions and 2543 deletions
+9 -18
View File
@@ -1,28 +1,19 @@
{
"name": "pi-zulip-extension",
"version": "0.1.0",
"description": "pi extension for Zulip agent communication — connects Abiba to the Sysloggh agent mesh",
"main": "src/index.ts",
"name": "abiba-zulip-service",
"version": "2.0.0",
"description": "Standalone Zulip gateway service for Abiba (pi agent). Direct harness API, conversation memory, systemd service.",
"type": "module",
"main": "dist/index.js",
"scripts": {
"build": "tsc",
"check": "tsc --noEmit"
"start": "node dist/index.js",
"dev": "node --watch dist/index.js"
},
"dependencies": {
"yaml": "^2.9.0",
"zulip-js": "^2.0.0"
},
"devDependencies": {
"@earendil-works/pi-coding-agent": "^0.80.2",
"typescript": "^5.0.0"
},
"keywords": [
"pi",
"zulip",
"agent",
"abiba",
"sysloggh"
],
"license": "UNLICENSED",
"private": true
"@types/node": "^22.0.0",
"typescript": "^5.7.0"
}
}