@hybridaione/hybridclaw 0.1.18 → 0.1.20

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.
Files changed (56) hide show
  1. package/.env.example +7 -0
  2. package/.hybridclaw/container-image-state.json +5 -0
  3. package/CHANGELOG.md +35 -0
  4. package/README.md +33 -0
  5. package/SECURITY.md +8 -0
  6. package/config.example.json +12 -0
  7. package/container/package-lock.json +2 -2
  8. package/container/package.json +1 -1
  9. package/container/src/browser-tools.ts +81 -12
  10. package/dist/cli.js +159 -18
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config.d.ts +10 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +20 -0
  15. package/dist/config.js.map +1 -1
  16. package/dist/db.d.ts +6 -0
  17. package/dist/db.d.ts.map +1 -1
  18. package/dist/db.js +72 -0
  19. package/dist/db.js.map +1 -1
  20. package/dist/gateway-client.d.ts +4 -0
  21. package/dist/gateway-client.d.ts.map +1 -1
  22. package/dist/gateway-client.js +6 -0
  23. package/dist/gateway-client.js.map +1 -1
  24. package/dist/gateway-service.d.ts.map +1 -1
  25. package/dist/gateway-service.js +3 -0
  26. package/dist/gateway-service.js.map +1 -1
  27. package/dist/gateway-types.d.ts +12 -0
  28. package/dist/gateway-types.d.ts.map +1 -1
  29. package/dist/gateway-types.js.map +1 -1
  30. package/dist/gateway.js +19 -6
  31. package/dist/gateway.js.map +1 -1
  32. package/dist/health.d.ts.map +1 -1
  33. package/dist/health.js +13 -0
  34. package/dist/health.js.map +1 -1
  35. package/dist/observability-ingest.d.ts +15 -0
  36. package/dist/observability-ingest.d.ts.map +1 -0
  37. package/dist/observability-ingest.js +613 -0
  38. package/dist/observability-ingest.js.map +1 -0
  39. package/dist/runtime-config.d.ts +12 -0
  40. package/dist/runtime-config.d.ts.map +1 -1
  41. package/dist/runtime-config.js +59 -2
  42. package/dist/runtime-config.js.map +1 -1
  43. package/docs/index.html +19 -3
  44. package/package.json +1 -1
  45. package/src/audit-events.ts +27 -1
  46. package/src/cli.ts +169 -19
  47. package/src/config.ts +22 -0
  48. package/src/db.ts +72 -0
  49. package/src/gateway-client.ts +7 -0
  50. package/src/gateway-service.ts +3 -0
  51. package/src/gateway-types.ts +12 -0
  52. package/src/gateway.ts +24 -6
  53. package/src/health.ts +14 -0
  54. package/src/observability-ingest.ts +765 -0
  55. package/src/prompt-hooks.ts +6 -0
  56. package/src/runtime-config.ts +67 -2
package/.env.example CHANGED
@@ -5,3 +5,10 @@ HYBRIDAI_API_KEY=
5
5
  DISCORD_TOKEN= # Enable Discord integration when set
6
6
  WEB_API_TOKEN= # Protect /api/* endpoints (Bearer token)
7
7
  GATEWAY_API_TOKEN= # Client token override (defaults to WEB_API_TOKEN)
8
+
9
+ # Optional browser settings
10
+ BROWSER_ALLOW_PRIVATE_NETWORK= # Set true to allow localhost/private network navigation in browser tools
11
+ BROWSER_PERSIST_PROFILE= # Default true; set false for ephemeral browser profile
12
+ BROWSER_PERSIST_SESSION_STATE= # Default true; set false to disable auto save/restore state files
13
+ BROWSER_PROFILE_ROOT= # Optional profile root path (default: /workspace/.hybridclaw-runtime/browser-profiles in container)
14
+ BROWSER_CDP_URL= # Optional CDP endpoint (e.g. ws://127.0.0.1:9222/devtools/browser/...)
@@ -0,0 +1,5 @@
1
+ {
2
+ "imageName": "hybridclaw-agent",
3
+ "fingerprint": "3d8807c236f660de18d8e98a9539ca1862a2ed522f1a9acf9de862c5d12c4c75",
4
+ "recordedAt": "2026-03-02T20:30:27.276Z"
5
+ }
package/CHANGELOG.md CHANGED
@@ -8,6 +8,41 @@
8
8
 
9
9
  ### Fixed
10
10
 
11
+ ## [0.1.20](https://github.com/HybridAIOne/hybridclaw/tree/v0.1.20)
12
+
13
+ ### Added
14
+
15
+ - **Browser auth policy clarification**: Added explicit runtime guidance that user-directed login/auth-flow testing is allowed with browser tools on the requested domain.
16
+
17
+ ### Changed
18
+
19
+ - **Persistent browser login continuity**: Browser tooling now persists per-session profile/state by default (`AGENT_BROWSER_PROFILE` + `AGENT_BROWSER_SESSION_NAME`) with configurable overrides (`BROWSER_PERSIST_PROFILE`, `BROWSER_PERSIST_SESSION_STATE`, `BROWSER_PROFILE_ROOT`, `BROWSER_CDP_URL`).
20
+ - **Safety prompt alignment**: System safety hook now explicitly rejects fabricated “public-only/unauthenticated browser” limitations and prioritizes real tool/policy outcomes.
21
+ - **Documentation refresh**: Updated README and website docs (`docs/index.html`) with authenticated browser-flow support and browser session persistence behavior.
22
+
23
+ ### Fixed
24
+
25
+ - **Audit secret leakage risk**: Structured audit tool-call arguments now redact sensitive fields (password/token/secret/etc.), including `browser_type.text`, to avoid credential plaintext in audit trails.
26
+
27
+ ## [0.1.19](https://github.com/HybridAIOne/hybridclaw/tree/v0.1.19)
28
+
29
+ ### Added
30
+
31
+ - **Observability ingest exporter**: Added structured audit export to HybridAI via `POST /api/v1/agent-observability/events:batch` with cursor-based delivery, payload/event caps, and local runtime diagnostics in `GET /api/status`.
32
+ - **Observability token cache store**: Added persistent SQLite token cache (`observability_ingest_tokens`) for bot-scoped ingest tokens used by observability push.
33
+ - **Gateway admin shutdown endpoint**: Added `POST /api/admin/shutdown` for graceful local gateway termination and restart workflows.
34
+
35
+ ### Changed
36
+
37
+ - **Token lifecycle flow**: Observability ingest token management now uses `POST /api/v1/agent-observability/ingest-token:ensure` (no legacy token-route compatibility paths).
38
+ - **Gateway lifecycle handling**: `hybridclaw gateway restart` and stop/restart behavior now handle managed and unmanaged gateway ownership paths more reliably.
39
+ - **Documentation refresh**: Updated README and website docs (`docs/index.html`) with observability push/token behavior, restart guidance, and operational visibility messaging.
40
+
41
+ ### Fixed
42
+
43
+ - **Observability auth recovery**: Ingest auth failures now trigger token refresh attempts against the v1 ensure endpoint before pausing export.
44
+ - **Gateway status diagnostics**: Status responses now include richer observability state and PID-aware runtime diagnostics for easier troubleshooting.
45
+
11
46
  ## [0.1.18](https://github.com/HybridAIOne/hybridclaw/tree/v0.1.18)
12
47
 
13
48
  ### Added
package/README.md CHANGED
@@ -77,6 +77,8 @@ HybridClaw best-in-class capabilities:
77
77
  - formal prompt hook orchestration (`bootstrap`, `memory`, `safety`)
78
78
  - proactive runtime layer with active-hours gating, push delegation (`single`/`parallel`/`chain`), depth-aware tool policy, and retry controls
79
79
  - structured audit trail: append-only hash-chained wire logs (`data/audit/<session>/wire.jsonl`) with tamper-evident immutability, normalized SQLite audit tables, and verification/search CLI commands
80
+ - observability export: incremental `events:batch` forwarding with durable cursor tracking and bot-scoped ingest token lifecycle via `ingest-token:ensure`
81
+ - gateway lifecycle controls: managed + unmanaged restart/stop flows with graceful shutdown fallback paths
80
82
  - instruction-integrity approval flow: core instruction docs (`AGENTS.md`, `SECURITY.md`, `TRUST_MODEL.md`) are hash-verified against a local approved baseline before TUI start
81
83
 
82
84
  ## Configuration
@@ -86,6 +88,7 @@ HybridClaw uses typed runtime config in `config.json` (auto-created on first run
86
88
  - Start from `config.example.json` (reference)
87
89
  - Runtime watches `config.json` and hot-reloads most settings (model defaults, heartbeat, prompt hooks, limits, etc.)
88
90
  - `proactive.*` controls autonomous behavior (`activeHours`, `delegation`, `autoRetry`)
91
+ - `observability.*` controls push ingest into HybridAI (`events:batch` endpoint, batching, identity metadata)
89
92
  - Some settings require restart to fully apply (for example HTTP bind host/port)
90
93
  - Default bot is configured via `hybridai.defaultChatbotId` in `config.json` (legacy `HYBRIDAI_CHATBOT_ID` values are auto-migrated on startup)
91
94
 
@@ -94,6 +97,7 @@ Secrets remain in `.env`:
94
97
  - `HYBRIDAI_API_KEY` (required)
95
98
  - `DISCORD_TOKEN` (optional)
96
99
  - `WEB_API_TOKEN` and `GATEWAY_API_TOKEN` (optional API auth hardening)
100
+ - observability ingest token is auto-managed via `POST /api/v1/agent-observability/ingest-token:ensure` and cached locally
97
101
 
98
102
  Trust-model acceptance is stored in `config.json` under `security.*` and is required before runtime starts.
99
103
 
@@ -125,6 +129,29 @@ Instruction approval notes:
125
129
  - `hybridclaw tui` performs this check before startup and prompts for approval when files changed
126
130
  - instruction approval actions are audit logged (`approval.request` / `approval.response`, action `instruction:approve`)
127
131
 
132
+ ## Observability Push
133
+
134
+ HybridClaw can forward structured audit records to HybridAI's ingest API:
135
+
136
+ - endpoint: `POST /api/v1/agent-observability/events:batch`
137
+ - source: local `audit_events` table (ordered by `id`)
138
+ - transport: bearer ingest token auto-fetched via `POST /api/v1/agent-observability/ingest-token:ensure` using `HYBRIDAI_API_KEY`
139
+ - delivery: incremental batches with persisted cursor (`observability_offsets` table), max 1000 events and max 2,000,000-byte payload per request
140
+ - token handling: token cache is stored locally in SQLite (`observability_ingest_tokens`) and automatically refreshed on ingest auth failures
141
+
142
+ Config keys (in `config.json`):
143
+
144
+ - `observability.enabled` (`true` by default)
145
+ - `observability.baseUrl` (for example `https://hybridai.one`)
146
+ - `observability.ingestPath` (`/api/v1/agent-observability/events:batch`)
147
+ - `observability.botId` (defaults to `hybridai.defaultChatbotId` when empty)
148
+ - `observability.agentId`, `observability.label`, `observability.environment`
149
+ - `observability.flushIntervalMs`, `observability.batchMaxEvents`
150
+
151
+ Runtime diagnostics:
152
+
153
+ - local status endpoint `GET /api/status` includes an `observability` block (enabled/running/paused, cursor, last success/failure timestamps)
154
+
128
155
  ## Agent workspace
129
156
 
130
157
  Each agent gets a persistent workspace with markdown files that shape its personality and memory:
@@ -219,6 +246,11 @@ Browser tooling notes:
219
246
 
220
247
  - The shipped container image preinstalls `agent-browser` and Chromium (Playwright).
221
248
  - You can override the binary via `AGENT_BROWSER_BIN` if needed.
249
+ - User-directed authenticated browser-flow testing is supported (including filling/submitting login forms on the requested site).
250
+ - Browser auth/session state now persists per HybridClaw session by default via a dedicated profile directory under `/workspace/.hybridclaw-runtime/browser-profiles`.
251
+ - Session cookies/localStorage are also auto-saved/restored via `agent-browser` session-state files.
252
+ - Optional overrides: `BROWSER_PERSIST_PROFILE=false` (disable profile persistence), `BROWSER_PERSIST_SESSION_STATE=false` (disable state file persistence), `BROWSER_PROFILE_ROOT=/path` (custom profile root), `BROWSER_CDP_URL=ws://...` (force CDP attachment to an existing browser).
253
+ - Structured audit logs redact sensitive browser/tool arguments (password/token/secret fields and typed form text).
222
254
  - Navigation to private/loopback hosts is blocked by default (set `BROWSER_ALLOW_PRIVATE_NETWORK=true` to override).
223
255
  - Screenshot/PDF outputs are constrained to `/workspace/.browser-artifacts`.
224
256
 
@@ -241,6 +273,7 @@ Hook toggles live in `config.json` under `promptHooks`.
241
273
  CLI runtime commands:
242
274
 
243
275
  - `hybridclaw gateway start [--foreground]` — Start gateway (backend by default; foreground with flag)
276
+ - `hybridclaw gateway restart [--foreground]` — Restart managed gateway backend process
244
277
  - `hybridclaw gateway stop` — Stop managed gateway backend process
245
278
  - `hybridclaw gateway status` — Show lifecycle/API status
246
279
  - `hybridclaw gateway <command...>` — Send a command to a running gateway (for example `sessions`, `bot info`)
package/SECURITY.md CHANGED
@@ -22,6 +22,14 @@ System prompts include safety constraints for every conversation turn:
22
22
 
23
23
  Implementation: [src/prompt-hooks.ts](./src/prompt-hooks.ts)
24
24
 
25
+ ### 1.1) Browser Authentication Flows
26
+
27
+ User-directed browser authentication testing is permitted when the user explicitly asks for it:
28
+
29
+ - Browser tools may fill credentials and submit login forms for the requested site.
30
+ - Credentials must be used only for the requested auth flow on the intended domain.
31
+ - Credentials must not be echoed in assistant prose, written to workspace files, or sent to unrelated domains.
32
+
25
33
  ### 2) Runtime Tool Blocking
26
34
 
27
35
  Before tool execution, HybridClaw applies policy hooks that block known dangerous patterns:
@@ -43,6 +43,18 @@
43
43
  "dbPath": "data/hybridclaw.db",
44
44
  "logLevel": "info"
45
45
  },
46
+ "observability": {
47
+ "enabled": true,
48
+ "baseUrl": "https://hybridai.one",
49
+ "ingestPath": "/api/v1/agent-observability/events:batch",
50
+ "statusPath": "/api/v1/agent-observability/status",
51
+ "botId": "",
52
+ "agentId": "agent_main",
53
+ "label": "",
54
+ "environment": "prod",
55
+ "flushIntervalMs": 10000,
56
+ "batchMaxEvents": 500
57
+ },
46
58
  "sessionCompaction": {
47
59
  "enabled": true,
48
60
  "threshold": 120,
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "hybridclaw-agent",
3
- "version": "0.1.18",
3
+ "version": "0.1.20",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "hybridclaw-agent",
9
- "version": "0.1.18",
9
+ "version": "0.1.20",
10
10
  "dependencies": {
11
11
  "@mozilla/readability": "^0.6.0",
12
12
  "agent-browser": "^0.15.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hybridclaw-agent",
3
- "version": "0.1.18",
3
+ "version": "0.1.20",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "tsc",
@@ -1,4 +1,5 @@
1
1
  import { execFile, spawnSync } from 'child_process';
2
+ import { createHash } from 'crypto';
2
3
  import { lookup } from 'dns/promises';
3
4
  import fs from 'fs';
4
5
  import net from 'net';
@@ -19,6 +20,8 @@ const BROWSER_TMP_HOME = path.join(BROWSER_RUNTIME_ROOT, 'home');
19
20
  const BROWSER_NPM_CACHE = path.join(BROWSER_RUNTIME_ROOT, 'npm-cache');
20
21
  const BROWSER_XDG_CACHE = path.join(BROWSER_RUNTIME_ROOT, 'cache');
21
22
  const BROWSER_PLAYWRIGHT_CACHE = path.join(BROWSER_RUNTIME_ROOT, 'ms-playwright');
23
+ const BROWSER_PROFILE_ROOT = path.join(BROWSER_RUNTIME_ROOT, 'browser-profiles');
24
+ const ENV_FALSEY = new Set(['0', 'false', 'no', 'off']);
22
25
 
23
26
  type BrowserRunner = {
24
27
  cmd: string;
@@ -28,6 +31,8 @@ type BrowserRunner = {
28
31
  type BrowserSession = {
29
32
  sessionKey: string;
30
33
  socketDir: string;
34
+ profileDir?: string;
35
+ stateName?: string;
31
36
  createdAt: number;
32
37
  lastUsedAt: number;
33
38
  };
@@ -44,6 +49,45 @@ function normalizeSessionKey(sessionId: string): string {
44
49
  return normalized || 'default';
45
50
  }
46
51
 
52
+ function envFlagEnabled(name: string, defaultValue: boolean): boolean {
53
+ const raw = process.env[name];
54
+ if (raw == null || raw.trim() === '') return defaultValue;
55
+ return !ENV_FALSEY.has(raw.trim().toLowerCase());
56
+ }
57
+
58
+ function deriveStableId(raw: string, maxLength = 40): string {
59
+ const base =
60
+ String(raw || 'default')
61
+ .toLowerCase()
62
+ .replace(/[^a-z0-9_-]+/g, '_')
63
+ .replace(/^_+|_+$/g, '') || 'default';
64
+ const hash = createHash('sha256').update(raw).digest('hex').slice(0, 10);
65
+ const headLength = Math.max(1, maxLength - hash.length - 1);
66
+ return `${base.slice(0, headLength)}_${hash}`;
67
+ }
68
+
69
+ function shouldPersistProfiles(): boolean {
70
+ return envFlagEnabled('BROWSER_PERSIST_PROFILE', true);
71
+ }
72
+
73
+ function shouldPersistSessionState(): boolean {
74
+ return envFlagEnabled('BROWSER_PERSIST_SESSION_STATE', true);
75
+ }
76
+
77
+ function resolveProfileRoot(): string {
78
+ const configured = String(process.env.BROWSER_PROFILE_ROOT || '').trim();
79
+ if (!configured) return ensureWritableDir(BROWSER_PROFILE_ROOT);
80
+ const resolved = path.isAbsolute(configured) ? configured : path.resolve(WORKSPACE_ROOT, configured);
81
+ return ensureWritableDir(resolved);
82
+ }
83
+
84
+ function resolveCdpUrl(explicit?: string): string | undefined {
85
+ const direct = String(explicit || '').trim();
86
+ if (direct) return direct;
87
+ const configured = String(process.env.BROWSER_CDP_URL || '').trim();
88
+ return configured || undefined;
89
+ }
90
+
47
91
  function resolveRunner(): BrowserRunner | null {
48
92
  if (cachedRunner !== undefined) {
49
93
  return cachedRunner;
@@ -86,12 +130,27 @@ function getSession(sessionId: string): BrowserSession {
86
130
  }
87
131
 
88
132
  fs.mkdirSync(BROWSER_SOCKET_ROOT, { recursive: true, mode: 0o700 });
89
- const socketDir = path.join(BROWSER_SOCKET_ROOT, sessionKey);
133
+ const runtimeKey = deriveStableId(sessionKey, 32);
134
+ const socketDir = path.join(BROWSER_SOCKET_ROOT, runtimeKey);
90
135
  fs.mkdirSync(socketDir, { recursive: true, mode: 0o700 });
91
136
 
137
+ let profileDir: string | undefined;
138
+ if (shouldPersistProfiles()) {
139
+ try {
140
+ profileDir = ensureWritableDir(path.join(resolveProfileRoot(), runtimeKey));
141
+ } catch {
142
+ // Fallback to ephemeral browser context if profile dir cannot be created.
143
+ profileDir = undefined;
144
+ }
145
+ }
146
+
147
+ const stateName = shouldPersistSessionState() ? deriveStableId(sessionKey, 48) : undefined;
148
+
92
149
  const session: BrowserSession = {
93
150
  sessionKey,
94
151
  socketDir,
152
+ profileDir,
153
+ stateName,
95
154
  createdAt: Date.now(),
96
155
  lastUsedAt: Date.now(),
97
156
  };
@@ -290,24 +349,34 @@ async function runAgentBrowser(
290
349
  const xdgCacheDir = ensureWritableDir(BROWSER_XDG_CACHE);
291
350
  const playwrightBrowsersPath = resolvePlaywrightBrowsersPath();
292
351
  const args = [...runner.prefixArgs];
293
- if (options.cdpUrl && options.cdpUrl.trim()) {
294
- args.push('--cdp', options.cdpUrl.trim());
352
+ const cdpUrl = resolveCdpUrl(options.cdpUrl);
353
+ if (cdpUrl) {
354
+ args.push('--cdp', cdpUrl);
295
355
  }
296
356
  args.push('--json', command, ...commandArgs);
297
357
 
358
+ const browserEnv: NodeJS.ProcessEnv = {
359
+ ...process.env,
360
+ AGENT_BROWSER_SOCKET_DIR: session.socketDir,
361
+ AGENT_BROWSER_SESSION: 'default',
362
+ HOME: homeDir,
363
+ XDG_CACHE_HOME: xdgCacheDir,
364
+ NPM_CONFIG_CACHE: npmCacheDir,
365
+ npm_config_cache: npmCacheDir,
366
+ PLAYWRIGHT_BROWSERS_PATH: playwrightBrowsersPath,
367
+ };
368
+ if (session.stateName) {
369
+ browserEnv.AGENT_BROWSER_SESSION_NAME = session.stateName;
370
+ }
371
+ if (!cdpUrl && session.profileDir) {
372
+ browserEnv.AGENT_BROWSER_PROFILE = session.profileDir;
373
+ }
374
+
298
375
  try {
299
376
  const { stdout, stderr } = await execFileAsync(runner.cmd, args, {
300
377
  timeout: timeoutMs,
301
378
  maxBuffer: 2 * 1024 * 1024,
302
- env: {
303
- ...process.env,
304
- AGENT_BROWSER_SOCKET_DIR: session.socketDir,
305
- HOME: homeDir,
306
- XDG_CACHE_HOME: xdgCacheDir,
307
- NPM_CONFIG_CACHE: npmCacheDir,
308
- npm_config_cache: npmCacheDir,
309
- PLAYWRIGHT_BROWSERS_PATH: playwrightBrowsersPath,
310
- },
379
+ env: browserEnv,
311
380
  });
312
381
 
313
382
  const output = String(stdout || '').trim();
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from 'fs';
3
3
  import path from 'path';
4
- import { spawn } from 'child_process';
4
+ import { spawn, spawnSync } from 'child_process';
5
5
  import readline from 'readline/promises';
6
6
  import { ensureHybridAICredentials } from './onboarding.js';
7
7
  import { DATA_DIR, GATEWAY_BASE_URL, MissingRequiredEnvVarError } from './config.js';
@@ -161,6 +161,7 @@ function printGatewayUsage() {
161
161
  Commands:
162
162
  hybridclaw gateway
163
163
  hybridclaw gateway start [--foreground]
164
+ hybridclaw gateway restart [--foreground]
164
165
  hybridclaw gateway stop
165
166
  hybridclaw gateway status
166
167
  hybridclaw gateway sessions
@@ -287,6 +288,82 @@ async function waitForGatewayReachable(timeoutMs) {
287
288
  }
288
289
  return false;
289
290
  }
291
+ async function waitForGatewayUnreachable(timeoutMs) {
292
+ const deadline = Date.now() + timeoutMs;
293
+ while (Date.now() < deadline) {
294
+ if (!(await isGatewayReachable()))
295
+ return true;
296
+ await sleep(250);
297
+ }
298
+ return false;
299
+ }
300
+ async function requestUnmanagedGatewayShutdown() {
301
+ const { gatewayShutdown } = await import('./gateway-client.js');
302
+ await gatewayShutdown();
303
+ }
304
+ function parseGatewayBaseUrl() {
305
+ try {
306
+ return new URL(GATEWAY_BASE_URL);
307
+ }
308
+ catch {
309
+ return null;
310
+ }
311
+ }
312
+ function isLocalGatewayHost(hostname) {
313
+ const normalized = hostname.trim().toLowerCase();
314
+ return normalized === '127.0.0.1' || normalized === 'localhost' || normalized === '::1';
315
+ }
316
+ function resolveGatewayListenPort(url) {
317
+ if (url.port) {
318
+ const parsed = Number.parseInt(url.port, 10);
319
+ if (Number.isFinite(parsed) && parsed > 0)
320
+ return parsed;
321
+ }
322
+ return url.protocol === 'https:' ? 443 : 80;
323
+ }
324
+ function findGatewayPidByPort() {
325
+ const parsed = parseGatewayBaseUrl();
326
+ if (!parsed || !isLocalGatewayHost(parsed.hostname))
327
+ return null;
328
+ const port = resolveGatewayListenPort(parsed);
329
+ const result = spawnSync('lsof', ['-nP', `-iTCP:${port}`, '-sTCP:LISTEN', '-t'], {
330
+ encoding: 'utf-8',
331
+ });
332
+ if (result.error)
333
+ return null;
334
+ const output = (result.stdout || '').trim();
335
+ if (!output)
336
+ return null;
337
+ const firstPid = output
338
+ .split('\n')
339
+ .map((line) => Number.parseInt(line.trim(), 10))
340
+ .find((pid) => Number.isFinite(pid) && pid > 0);
341
+ return firstPid && Number.isFinite(firstPid) ? firstPid : null;
342
+ }
343
+ function adoptGatewayPid(pid, source) {
344
+ if (!isPidRunning(pid))
345
+ return false;
346
+ writeGatewayPid({
347
+ pid,
348
+ startedAt: new Date().toISOString(),
349
+ cwd: process.cwd(),
350
+ command: [`(adopted-from-${source})`],
351
+ });
352
+ return true;
353
+ }
354
+ async function adoptReachableGatewayIfPossible() {
355
+ const { gatewayStatus } = await import('./gateway-client.js');
356
+ const status = await gatewayStatus();
357
+ const pid = typeof status.pid === 'number' && Number.isFinite(status.pid)
358
+ ? Math.floor(status.pid)
359
+ : 0;
360
+ if (pid > 0 && adoptGatewayPid(pid, 'api-status'))
361
+ return true;
362
+ const fallbackPid = findGatewayPidByPort();
363
+ if (fallbackPid && adoptGatewayPid(fallbackPid, 'lsof-port-probe'))
364
+ return true;
365
+ return false;
366
+ }
290
367
  async function runGatewayForeground(commandName) {
291
368
  await ensureHybridAICredentials({ commandName });
292
369
  await ensureRuntimeContainer(commandName);
@@ -299,7 +376,20 @@ async function startGatewayBackend(commandName, waitForHealthy = false) {
299
376
  console.log(`Gateway already running in backend mode (pid ${existing.pid}).`);
300
377
  }
301
378
  else {
302
- console.log(`Gateway already reachable at ${GATEWAY_BASE_URL} (unmanaged by CLI PID file).`);
379
+ let adopted = false;
380
+ try {
381
+ adopted = await adoptReachableGatewayIfPossible();
382
+ }
383
+ catch {
384
+ adopted = false;
385
+ }
386
+ if (adopted) {
387
+ const adoptedState = readGatewayPid();
388
+ console.log(`Gateway already reachable at ${GATEWAY_BASE_URL}; adopted pid ${adoptedState?.pid || '(unknown)'}.`);
389
+ }
390
+ else {
391
+ console.log(`Gateway already reachable at ${GATEWAY_BASE_URL} (unmanaged by CLI PID file).`);
392
+ }
303
393
  }
304
394
  return;
305
395
  }
@@ -351,22 +441,11 @@ async function startGatewayBackend(commandName, waitForHealthy = false) {
351
441
  console.log(`Gateway started in backend mode (pid ${child.pid}).`);
352
442
  console.log(`Logs: ${GATEWAY_LOG_PATH}`);
353
443
  }
354
- async function stopGatewayBackend() {
355
- const state = readGatewayPid();
356
- if (!state) {
357
- if (await isGatewayReachable()) {
358
- console.log('Gateway is reachable but no managed PID file was found.');
359
- console.log('Stop it from its owning process or use your system process manager.');
360
- return;
361
- }
362
- console.log('Gateway is not running (no PID file).');
363
- return;
364
- }
365
- if (!isPidRunning(state.pid)) {
366
- removeGatewayPidFile();
367
- console.log(`Removed stale gateway PID file (pid ${state.pid} not running).`);
368
- return;
369
- }
444
+ function isShutdownEndpointMissing(error) {
445
+ const message = error instanceof Error ? error.message : String(error);
446
+ return /not found/i.test(message) || /404/.test(message);
447
+ }
448
+ async function stopManagedGatewayByPid(state) {
370
449
  try {
371
450
  process.kill(state.pid, 'SIGTERM');
372
451
  }
@@ -393,6 +472,58 @@ async function stopGatewayBackend() {
393
472
  removeGatewayPidFile();
394
473
  console.log(`Gateway stop timed out; sent SIGKILL to pid ${state.pid}.`);
395
474
  }
475
+ async function stopUnmanagedGatewayGracefully(mode) {
476
+ const suffix = mode === 'restart' ? ' before restart' : '';
477
+ console.log('Gateway is reachable but unmanaged by CLI PID file.');
478
+ console.log(`Requesting graceful shutdown over API${suffix}...`);
479
+ try {
480
+ await requestUnmanagedGatewayShutdown();
481
+ const stopped = await waitForGatewayUnreachable(10_000);
482
+ if (!stopped) {
483
+ throw new Error(`Gateway remained reachable at ${GATEWAY_BASE_URL} after shutdown request.`
484
+ + ' Stop it from its owning process or use your system process manager.');
485
+ }
486
+ console.log('Unmanaged gateway stopped via API request.');
487
+ return;
488
+ }
489
+ catch (err) {
490
+ if (!isShutdownEndpointMissing(err))
491
+ throw err;
492
+ }
493
+ const discoveredPid = findGatewayPidByPort();
494
+ if (discoveredPid && discoveredPid !== process.pid && adoptGatewayPid(discoveredPid, 'lsof-port-probe')) {
495
+ const adoptedState = readGatewayPid();
496
+ if (adoptedState && isPidRunning(adoptedState.pid)) {
497
+ console.log(`Shutdown API unavailable; stopping gateway pid ${adoptedState.pid} via local signal.`);
498
+ await stopManagedGatewayByPid(adoptedState);
499
+ return;
500
+ }
501
+ }
502
+ throw new Error(`Gateway shutdown endpoint is unavailable at ${GATEWAY_BASE_URL} and PID ownership could not be recovered.`
503
+ + ' Stop the process manually once, then retry.');
504
+ }
505
+ async function stopGatewayBackend() {
506
+ const state = readGatewayPid();
507
+ if (!state) {
508
+ if (await isGatewayReachable()) {
509
+ await stopUnmanagedGatewayGracefully('stop');
510
+ return;
511
+ }
512
+ console.log('Gateway is not running (no PID file).');
513
+ return;
514
+ }
515
+ if (!isPidRunning(state.pid)) {
516
+ removeGatewayPidFile();
517
+ if (await isGatewayReachable()) {
518
+ console.log(`Removed stale gateway PID file (pid ${state.pid} not running).`);
519
+ await stopUnmanagedGatewayGracefully('stop');
520
+ return;
521
+ }
522
+ console.log(`Removed stale gateway PID file (pid ${state.pid} not running).`);
523
+ return;
524
+ }
525
+ await stopManagedGatewayByPid(state);
526
+ }
396
527
  async function printGatewayLifecycleStatus() {
397
528
  const state = readGatewayPid();
398
529
  const runningByPid = Boolean(state && isPidRunning(state.pid));
@@ -457,6 +588,16 @@ async function handleGatewayCommand(args) {
457
588
  await startGatewayBackend('hybridclaw gateway start');
458
589
  return;
459
590
  }
591
+ if (sub === 'restart') {
592
+ const flags = parseGatewayFlags(normalized.slice(1));
593
+ await stopGatewayBackend();
594
+ if (flags.foreground) {
595
+ await runGatewayForeground('hybridclaw gateway restart --foreground');
596
+ return;
597
+ }
598
+ await startGatewayBackend('hybridclaw gateway restart');
599
+ return;
600
+ }
460
601
  if (sub === 'stop') {
461
602
  await stopGatewayBackend();
462
603
  return;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}