habi-agent 0.1.1 → 0.1.3
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/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- 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/package.json +1 -1
- package/src/cli.ts +5 -1
- package/src/cloud.ts +17 -11
package/dist/cli.js
CHANGED
|
@@ -53,11 +53,15 @@ const http = __importStar(require("http"));
|
|
|
53
53
|
const os = __importStar(require("os"));
|
|
54
54
|
const AGENT_PORT = 7432;
|
|
55
55
|
const command = process.argv[2] || 'start';
|
|
56
|
-
// Parse --key
|
|
56
|
+
// Parse --key and --name arguments (works on all platforms)
|
|
57
57
|
const keyArgIdx = process.argv.indexOf('--key');
|
|
58
58
|
if (keyArgIdx !== -1 && process.argv[keyArgIdx + 1]) {
|
|
59
59
|
process.env.HABI_KEY = process.argv[keyArgIdx + 1];
|
|
60
60
|
}
|
|
61
|
+
const nameArgIdx = process.argv.indexOf('--name');
|
|
62
|
+
if (nameArgIdx !== -1 && process.argv[nameArgIdx + 1]) {
|
|
63
|
+
process.env.HABI_DEVICE_NAME = process.argv[nameArgIdx + 1];
|
|
64
|
+
}
|
|
61
65
|
// ── Utility: ping the running agent ────────────────────────────────────────
|
|
62
66
|
function pingAgent(p = '/health') {
|
|
63
67
|
return new Promise((resolve, reject) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAA2C;AAC3C,yCAAsF;AACtF,uCAAyD;AACzD,mCAAwD;AACxD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AAE3C,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
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/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -21,11 +21,15 @@ import * as os from 'os';
|
|
|
21
21
|
const AGENT_PORT = 7432;
|
|
22
22
|
const command = process.argv[2] || 'start';
|
|
23
23
|
|
|
24
|
-
// Parse --key
|
|
24
|
+
// Parse --key and --name arguments (works on all platforms)
|
|
25
25
|
const keyArgIdx = process.argv.indexOf('--key');
|
|
26
26
|
if (keyArgIdx !== -1 && process.argv[keyArgIdx + 1]) {
|
|
27
27
|
process.env.HABI_KEY = process.argv[keyArgIdx + 1];
|
|
28
28
|
}
|
|
29
|
+
const nameArgIdx = process.argv.indexOf('--name');
|
|
30
|
+
if (nameArgIdx !== -1 && process.argv[nameArgIdx + 1]) {
|
|
31
|
+
process.env.HABI_DEVICE_NAME = process.argv[nameArgIdx + 1];
|
|
32
|
+
}
|
|
29
33
|
|
|
30
34
|
// ── Utility: ping the running agent ────────────────────────────────────────
|
|
31
35
|
function pingAgent(p: string = '/health'): Promise<Record<string, unknown>> {
|
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) {
|