habi-agent 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cloud.d.ts +2 -0
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +21 -15
- package/dist/cloud.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +56 -1
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/src/cloud.ts +17 -11
- package/src/server.ts +56 -1
package/dist/cloud.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HABI Cloud Sync
|
|
3
3
|
* Authenticates via HABI_KEY, registers device, and sends heartbeats.
|
|
4
|
+
* NOTE: HABI_KEY and OWNER_EMAIL are read at call time (not module load time)
|
|
5
|
+
* so that CLI --key arg has time to set process.env.HABI_KEY first.
|
|
4
6
|
*/
|
|
5
7
|
interface HeartbeatResponse {
|
|
6
8
|
ok: boolean;
|
package/dist/cloud.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,UAAU,iBAAiB;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuCD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,KAAK,GAAG,iBAAiB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmC7B;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CAqB1F;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9E"}
|
package/dist/cloud.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* HABI Cloud Sync
|
|
4
4
|
* Authenticates via HABI_KEY, registers device, and sends heartbeats.
|
|
5
|
+
* NOTE: HABI_KEY and OWNER_EMAIL are read at call time (not module load time)
|
|
6
|
+
* so that CLI --key arg has time to set process.env.HABI_KEY first.
|
|
5
7
|
*/
|
|
6
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
9
|
if (k2 === undefined) k2 = k;
|
|
@@ -43,20 +45,20 @@ exports.reportJobResult = reportJobResult;
|
|
|
43
45
|
const https = __importStar(require("https"));
|
|
44
46
|
const HABI_API = process.env.HABI_API_URL ||
|
|
45
47
|
'https://dokcixjitwihtbdlkbdb.supabase.co/functions/v1';
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
// ── Read env at call time, not module load time ──────────────────────────────
|
|
49
|
+
function getKey() { return process.env.HABI_KEY || ''; }
|
|
50
|
+
function getEmail() { return process.env.HABI_OWNER_EMAIL || ''; }
|
|
48
51
|
function post(path, body) {
|
|
49
52
|
return new Promise((resolve, reject) => {
|
|
53
|
+
const habiKey = getKey();
|
|
50
54
|
const bodyStr = JSON.stringify(body);
|
|
51
55
|
const url = new URL(`${HABI_API}/${path}`);
|
|
52
56
|
const headers = {
|
|
53
57
|
'Content-Type': 'application/json',
|
|
54
58
|
'Content-Length': String(Buffer.byteLength(bodyStr)),
|
|
55
59
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
headers['x-habi-key'] = HABI_KEY;
|
|
59
|
-
}
|
|
60
|
+
if (habiKey)
|
|
61
|
+
headers['x-habi-key'] = habiKey;
|
|
60
62
|
const options = {
|
|
61
63
|
hostname: url.hostname,
|
|
62
64
|
port: 443,
|
|
@@ -83,16 +85,18 @@ function post(path, body) {
|
|
|
83
85
|
});
|
|
84
86
|
}
|
|
85
87
|
async function registerDevice(params) {
|
|
86
|
-
|
|
88
|
+
const habiKey = getKey();
|
|
89
|
+
const ownerEmail = getEmail();
|
|
90
|
+
if (!habiKey && !ownerEmail) {
|
|
87
91
|
console.warn('[HABI] No HABI_KEY or HABI_OWNER_EMAIL set — running offline.');
|
|
88
92
|
return null;
|
|
89
93
|
}
|
|
90
94
|
try {
|
|
91
95
|
const body = { ...params };
|
|
92
|
-
if (
|
|
93
|
-
body.habiKey =
|
|
94
|
-
if (
|
|
95
|
-
body.ownerEmail =
|
|
96
|
+
if (habiKey)
|
|
97
|
+
body.habiKey = habiKey;
|
|
98
|
+
if (ownerEmail)
|
|
99
|
+
body.ownerEmail = ownerEmail;
|
|
96
100
|
const res = await post('device-register', body);
|
|
97
101
|
if (!res.ok || !res.deviceId) {
|
|
98
102
|
console.error(`[HABI] Registration failed: ${res.error}`);
|
|
@@ -115,8 +119,9 @@ async function registerDevice(params) {
|
|
|
115
119
|
async function sendHeartbeat(params) {
|
|
116
120
|
try {
|
|
117
121
|
const body = { ...params };
|
|
118
|
-
|
|
119
|
-
|
|
122
|
+
const habiKey = getKey();
|
|
123
|
+
if (habiKey)
|
|
124
|
+
body.habiKey = habiKey;
|
|
120
125
|
const res = await post('heartbeat', body);
|
|
121
126
|
if (!res.ok) {
|
|
122
127
|
console.error(`[HABI] Heartbeat failed: ${res.error}`);
|
|
@@ -135,8 +140,9 @@ async function sendHeartbeat(params) {
|
|
|
135
140
|
async function reportJobResult(payload) {
|
|
136
141
|
try {
|
|
137
142
|
const body = { ...payload };
|
|
138
|
-
|
|
139
|
-
|
|
143
|
+
const habiKey = getKey();
|
|
144
|
+
if (habiKey)
|
|
145
|
+
body.habiKey = habiKey;
|
|
140
146
|
await post('job-result', body);
|
|
141
147
|
console.log(`[HABI] Job result reported: ${payload.jobId} → ${payload.status}`);
|
|
142
148
|
}
|
package/dist/cloud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoCH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAG1C,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,YAAY;YAwBN,mBAAmB;YAiCnB,WAAW;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoCH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAG1C,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,YAAY;YAwBN,mBAAmB;YAiCnB,WAAW;YAkBX,iBAAiB;IAuD/B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,kBAAkB;IAqB1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDtB,IAAI,IAAI,IAAI;CAIb"}
|
package/dist/server.js
CHANGED
|
@@ -181,7 +181,60 @@ class HabiLocalServer {
|
|
|
181
181
|
json(res, 500, { ok: false, error: String(err) });
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
|
|
184
|
+
async handleLogActivity(req, res) {
|
|
185
|
+
try {
|
|
186
|
+
const data = await readBody(req);
|
|
187
|
+
const hw = (0, hardware_1.readHardwareIdentity)();
|
|
188
|
+
const habiKey = process.env.HABI_KEY || '';
|
|
189
|
+
// Console log always
|
|
190
|
+
const icons = {
|
|
191
|
+
'claude.ai': '🟠', 'chatgpt.com': '🟢', 'cursor.sh': '🔵',
|
|
192
|
+
'gemini.google.com': '🔷', 'github.com': '⚫', 'perplexity.ai': '🔵',
|
|
193
|
+
'copilot.microsoft.com': '🔷', 'v0.dev': '⬛', 'character.ai': '🟣',
|
|
194
|
+
};
|
|
195
|
+
const icon = icons[data.hostname ?? ''] ?? '🤖';
|
|
196
|
+
const toolName = data.toolName ?? 'Unknown';
|
|
197
|
+
const engine = data.engine ?? 'Unknown';
|
|
198
|
+
console.log(`[HABI Activity] ${icon} ${toolName} — ${engine}`);
|
|
199
|
+
// Cloud log via the post() function from cloud module
|
|
200
|
+
if (habiKey) {
|
|
201
|
+
const logPayload = {
|
|
202
|
+
eventType: 'ACTION_ALLOWED',
|
|
203
|
+
operation: `${toolName} — ${engine}`,
|
|
204
|
+
hardwareId: hw.fingerprint,
|
|
205
|
+
toolName,
|
|
206
|
+
engine,
|
|
207
|
+
visitUrl: data.url ?? '',
|
|
208
|
+
sessionId: data.sessionId ?? '',
|
|
209
|
+
ts: data.ts ?? new Date().toISOString(),
|
|
210
|
+
};
|
|
211
|
+
// Use dynamic import to avoid circular dependency
|
|
212
|
+
Promise.resolve().then(async () => {
|
|
213
|
+
const https = await Promise.resolve().then(() => __importStar(require('https')));
|
|
214
|
+
const body = JSON.stringify({ ...logPayload, habiKey });
|
|
215
|
+
const opts = {
|
|
216
|
+
hostname: 'dokcixjitwihtbdlkbdb.supabase.co',
|
|
217
|
+
port: 443,
|
|
218
|
+
path: '/functions/v1/log-ai-activity',
|
|
219
|
+
method: 'POST',
|
|
220
|
+
headers: {
|
|
221
|
+
'Content-Type': 'application/json',
|
|
222
|
+
'Content-Length': String(Buffer.byteLength(body)),
|
|
223
|
+
'x-habi-key': habiKey,
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
const r = https.default.request(opts, (res2) => { res2.resume(); });
|
|
227
|
+
r.on('error', () => { });
|
|
228
|
+
r.write(body);
|
|
229
|
+
r.end();
|
|
230
|
+
}).catch(() => { });
|
|
231
|
+
}
|
|
232
|
+
json(res, 200, { ok: true, logged: true, tool: toolName, hw: hw.fingerprint });
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
json(res, 400, { ok: false, error: String(err) });
|
|
236
|
+
}
|
|
237
|
+
}
|
|
185
238
|
getHardware() {
|
|
186
239
|
if (!this.hardware) {
|
|
187
240
|
this.hardware = (0, hardware_1.readHardwareIdentity)();
|
|
@@ -242,6 +295,8 @@ class HabiLocalServer {
|
|
|
242
295
|
return this.handleAssertContext(req, res);
|
|
243
296
|
if (url === '/audit' && method === 'POST')
|
|
244
297
|
return this.handleAudit(req, res);
|
|
298
|
+
if (url === '/log-activity' && method === 'POST')
|
|
299
|
+
return this.handleLogActivity(req, res);
|
|
245
300
|
json(res, 404, { error: `Unknown route: ${method} ${url}` });
|
|
246
301
|
});
|
|
247
302
|
this.server.listen(PORT, BIND_HOST, () => {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAE7B,yCAAwG;AACxG,uCAAkH;AAElH,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,gBAAgB;AAU/C,SAAS,IAAI,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAa;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAyB;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YAC5C,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAa,eAAe;IAClB,QAAQ,GAA4B,IAAI,CAAC;IACzC,OAAO,GAAyB,IAAI,CAAC;IACrC,OAAO,GAAwB,IAAI,CAAC;IACpC,MAAM,GAAuB,IAAI,CAAC;IAE1C,2EAA2E;IACnE,WAAW,CAAC,GAAyB;QAC3C,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;QACpC,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,kBAAkB,CAAC;IACzE,CAAC;IAED,2EAA2E;IACnE,YAAY,CAAC,GAAwB;QAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAEO,cAAc,CAAC,GAAwB;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACb,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE;oBACR,WAAW,EAAE,EAAE,CAAC,WAAW;oBAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ;iBACtB;gBACD,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;iBACpC;gBACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,GAAwB;QAC3C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,CAAC;gBAC5F,OAAO;YACT,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACb,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,EAAE,CAAC,WAAW;gBAC1B,YAAY,EAAE,EAAE,CAAC,IAAI;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;aACrD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAwB;QACnF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;YACvD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE7F,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iEAAiE,EAAE,CAAC,CAAC;gBACxH,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAA,iCAAuB,EAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtG,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,IAAA,yBAAe,EAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACb,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,EAAE,CAAC,WAAW;gBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAyB,EAAE,GAAwB;QAC3E,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG;gBACZ,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,UAAU,EAAE,EAAE,CAAC,WAAW;gBAC1B,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,SAAS;gBAC1D,GAAG,IAAI;aACR,CAAC;YACF,MAAM,SAAS,GAAG,IAAA,iBAAM,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/G,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,2EAA2E;IACnE,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAA,+BAAoB,GAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACjH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,IAAA,yBAAe,GAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC;gBACN,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAW,EAAC,CAAC,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,kBAAkB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QAEtE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,GAAG,EAAE,WAAW,IAAI,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAA,qCAA0B,EAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QAEjF,IAAI,CAAC,OAAO,GAAG;YACb,WAAW;YACX,UAAU,EAAE,EAAE,CAAC,WAAW;YAC1B,WAAW;YACX,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;SAChC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACxH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,2EAA2E;IAC3E,KAAK;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAE1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBACjD,wBAAwB;oBACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;wBAC1D,OAAO;oBACT,CAAC;oBAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;oBAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;oBAEnC,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK;wBAAU,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACjF,IAAI,GAAG,KAAK,WAAW,IAAI,MAAM,KAAK,KAAK;wBAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBACnF,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;wBAAS,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACjF,IAAI,GAAG,KAAK,iBAAiB,IAAI,MAAM,KAAK,MAAM;wBAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC9F,IAAI,GAAG,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM;wBAAU,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAErF,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;oBACvC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,4BAA4B,SAAS,IAAI,IAAI,YAAY,CAAC,CAAC;oBACvE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACpD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;oBACtE,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;oBACrD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,mDAAmD,CAAC,CAAC,CAAC;oBAC3F,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;CACF;AApND,0CAoNC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cloud.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HABI Cloud Sync
|
|
3
3
|
* Authenticates via HABI_KEY, registers device, and sends heartbeats.
|
|
4
|
+
* NOTE: HABI_KEY and OWNER_EMAIL are read at call time (not module load time)
|
|
5
|
+
* so that CLI --key arg has time to set process.env.HABI_KEY first.
|
|
4
6
|
*/
|
|
5
7
|
|
|
6
8
|
import * as https from 'https';
|
|
@@ -9,8 +11,9 @@ import * as os from 'os';
|
|
|
9
11
|
const HABI_API = process.env.HABI_API_URL ||
|
|
10
12
|
'https://dokcixjitwihtbdlkbdb.supabase.co/functions/v1';
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
// ── Read env at call time, not module load time ──────────────────────────────
|
|
15
|
+
function getKey(): string { return process.env.HABI_KEY || ''; }
|
|
16
|
+
function getEmail(): string { return process.env.HABI_OWNER_EMAIL || ''; }
|
|
14
17
|
|
|
15
18
|
interface RegisterResponse {
|
|
16
19
|
ok: boolean;
|
|
@@ -42,6 +45,7 @@ interface JobResultPayload {
|
|
|
42
45
|
|
|
43
46
|
function post<T>(path: string, body: Record<string, unknown>): Promise<T> {
|
|
44
47
|
return new Promise((resolve, reject) => {
|
|
48
|
+
const habiKey = getKey();
|
|
45
49
|
const bodyStr = JSON.stringify(body);
|
|
46
50
|
const url = new URL(`${HABI_API}/${path}`);
|
|
47
51
|
|
|
@@ -50,10 +54,7 @@ function post<T>(path: string, body: Record<string, unknown>): Promise<T> {
|
|
|
50
54
|
'Content-Length': String(Buffer.byteLength(bodyStr)),
|
|
51
55
|
};
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
if (HABI_KEY) {
|
|
55
|
-
headers['x-habi-key'] = HABI_KEY;
|
|
56
|
-
}
|
|
57
|
+
if (habiKey) headers['x-habi-key'] = habiKey;
|
|
57
58
|
|
|
58
59
|
const options: https.RequestOptions = {
|
|
59
60
|
hostname: url.hostname,
|
|
@@ -95,15 +96,18 @@ export async function registerDevice(params: {
|
|
|
95
96
|
osPlatform?: string;
|
|
96
97
|
}): Promise<CloudState | null> {
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
const habiKey = getKey();
|
|
100
|
+
const ownerEmail = getEmail();
|
|
101
|
+
|
|
102
|
+
if (!habiKey && !ownerEmail) {
|
|
99
103
|
console.warn('[HABI] No HABI_KEY or HABI_OWNER_EMAIL set — running offline.');
|
|
100
104
|
return null;
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
try {
|
|
104
108
|
const body: Record<string, unknown> = { ...params };
|
|
105
|
-
if (
|
|
106
|
-
if (
|
|
109
|
+
if (habiKey) body.habiKey = habiKey;
|
|
110
|
+
if (ownerEmail) body.ownerEmail = ownerEmail;
|
|
107
111
|
|
|
108
112
|
const res = await post<RegisterResponse>('device-register', body);
|
|
109
113
|
|
|
@@ -134,7 +138,8 @@ export async function sendHeartbeat(params: {
|
|
|
134
138
|
}): Promise<{ sessionToken: string; pendingJobs: HeartbeatResponse['pendingJobs'] } | null> {
|
|
135
139
|
try {
|
|
136
140
|
const body: Record<string, unknown> = { ...params };
|
|
137
|
-
|
|
141
|
+
const habiKey = getKey();
|
|
142
|
+
if (habiKey) body.habiKey = habiKey;
|
|
138
143
|
|
|
139
144
|
const res = await post<HeartbeatResponse>('heartbeat', body);
|
|
140
145
|
|
|
@@ -156,7 +161,8 @@ export async function sendHeartbeat(params: {
|
|
|
156
161
|
export async function reportJobResult(payload: JobResultPayload): Promise<void> {
|
|
157
162
|
try {
|
|
158
163
|
const body = { ...payload as unknown as Record<string, unknown> };
|
|
159
|
-
|
|
164
|
+
const habiKey = getKey();
|
|
165
|
+
if (habiKey) body.habiKey = habiKey;
|
|
160
166
|
await post<{ ok: boolean }>('job-result', body);
|
|
161
167
|
console.log(`[HABI] Job result reported: ${payload.jobId} → ${payload.status}`);
|
|
162
168
|
} catch (err) {
|
package/src/server.ts
CHANGED
|
@@ -158,7 +158,61 @@ export class HabiLocalServer {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
private async handleLogActivity(req: import('http').IncomingMessage, res: import('http').ServerResponse): Promise<void> {
|
|
162
|
+
try {
|
|
163
|
+
const data = await readBody(req) as Record<string, string>;
|
|
164
|
+
const hw = readHardwareIdentity();
|
|
165
|
+
const habiKey = process.env.HABI_KEY || '';
|
|
166
|
+
|
|
167
|
+
// Console log always
|
|
168
|
+
const icons: Record<string, string> = {
|
|
169
|
+
'claude.ai': '🟠', 'chatgpt.com': '🟢', 'cursor.sh': '🔵',
|
|
170
|
+
'gemini.google.com': '🔷', 'github.com': '⚫', 'perplexity.ai': '🔵',
|
|
171
|
+
'copilot.microsoft.com': '🔷', 'v0.dev': '⬛', 'character.ai': '🟣',
|
|
172
|
+
};
|
|
173
|
+
const icon = icons[data.hostname ?? ''] ?? '🤖';
|
|
174
|
+
const toolName = data.toolName ?? 'Unknown';
|
|
175
|
+
const engine = data.engine ?? 'Unknown';
|
|
176
|
+
console.log(`[HABI Activity] ${icon} ${toolName} — ${engine}`);
|
|
177
|
+
|
|
178
|
+
// Cloud log via the post() function from cloud module
|
|
179
|
+
if (habiKey) {
|
|
180
|
+
const logPayload: Record<string, unknown> = {
|
|
181
|
+
eventType: 'ACTION_ALLOWED',
|
|
182
|
+
operation: `${toolName} — ${engine}`,
|
|
183
|
+
hardwareId: hw.fingerprint,
|
|
184
|
+
toolName,
|
|
185
|
+
engine,
|
|
186
|
+
visitUrl: data.url ?? '',
|
|
187
|
+
sessionId: data.sessionId ?? '',
|
|
188
|
+
ts: data.ts ?? new Date().toISOString(),
|
|
189
|
+
};
|
|
190
|
+
// Use dynamic import to avoid circular dependency
|
|
191
|
+
Promise.resolve().then(async () => {
|
|
192
|
+
const https = await import('https');
|
|
193
|
+
const body = JSON.stringify({ ...logPayload, habiKey });
|
|
194
|
+
const opts: import('https').RequestOptions = {
|
|
195
|
+
hostname: 'dokcixjitwihtbdlkbdb.supabase.co',
|
|
196
|
+
port: 443,
|
|
197
|
+
path: '/functions/v1/log-ai-activity',
|
|
198
|
+
method: 'POST',
|
|
199
|
+
headers: {
|
|
200
|
+
'Content-Type': 'application/json',
|
|
201
|
+
'Content-Length': String(Buffer.byteLength(body)),
|
|
202
|
+
'x-habi-key': habiKey,
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
const r = https.default.request(opts, (res2) => { res2.resume(); });
|
|
206
|
+
r.on('error', () => {});
|
|
207
|
+
r.write(body); r.end();
|
|
208
|
+
}).catch(() => {});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
json(res, 200, { ok: true, logged: true, tool: toolName, hw: hw.fingerprint });
|
|
212
|
+
} catch (err) {
|
|
213
|
+
json(res, 400, { ok: false, error: String(err) });
|
|
214
|
+
}
|
|
215
|
+
}
|
|
162
216
|
private getHardware(): HardwareIdentity {
|
|
163
217
|
if (!this.hardware) {
|
|
164
218
|
this.hardware = readHardwareIdentity();
|
|
@@ -221,6 +275,7 @@ export class HabiLocalServer {
|
|
|
221
275
|
if (url === '/verify' && method === 'POST') return this.handleVerify(res);
|
|
222
276
|
if (url === '/assert-context' && method === 'POST') return this.handleAssertContext(req, res);
|
|
223
277
|
if (url === '/audit' && method === 'POST') return this.handleAudit(req, res);
|
|
278
|
+
if (url === '/log-activity' && method === 'POST') return this.handleLogActivity(req, res);
|
|
224
279
|
|
|
225
280
|
json(res, 404, { error: `Unknown route: ${method} ${url}` });
|
|
226
281
|
});
|