@decibelsystems/tools 3.0.0 → 3.1.1
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/CHANGELOG.md +80 -0
- package/dist/agentCommands.d.ts +0 -1
- package/dist/agentCommands.d.ts.map +1 -1
- package/dist/agentCommands.js +19 -8
- package/dist/agentCommands.js.map +1 -1
- package/dist/agentPresence.d.ts +5 -3
- package/dist/agentPresence.d.ts.map +1 -1
- package/dist/agentPresence.js +20 -29
- package/dist/agentPresence.js.map +1 -1
- package/dist/architectAdrs.d.ts +13 -1
- package/dist/architectAdrs.d.ts.map +1 -1
- package/dist/architectAdrs.js +83 -1
- package/dist/architectAdrs.js.map +1 -1
- package/dist/artifacts.d.ts +60 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +208 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/asks.d.ts +93 -0
- package/dist/asks.d.ts.map +1 -0
- package/dist/asks.js +383 -0
- package/dist/asks.js.map +1 -0
- package/dist/chat.d.ts +47 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +288 -0
- package/dist/chat.js.map +1 -0
- package/dist/daemon.d.ts +19 -3
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +76 -17
- package/dist/daemon.js.map +1 -1
- package/dist/daemonConfig.d.ts +22 -0
- package/dist/daemonConfig.d.ts.map +1 -1
- package/dist/daemonConfig.js +11 -0
- package/dist/daemonConfig.js.map +1 -1
- package/dist/domain/issue.d.ts +19 -15
- package/dist/domain/issue.d.ts.map +1 -1
- package/dist/domain/issue.js +4 -32
- package/dist/domain/issue.js.map +1 -1
- package/dist/domain/issueCodec.d.ts.map +1 -1
- package/dist/domain/issueCodec.js +10 -0
- package/dist/domain/issueCodec.js.map +1 -1
- package/dist/domain/issueRepository.d.ts +35 -2
- package/dist/domain/issueRepository.d.ts.map +1 -1
- package/dist/domain/issueRepository.js +40 -1
- package/dist/domain/issueRepository.js.map +1 -1
- package/dist/domain/uid.d.ts +16 -0
- package/dist/domain/uid.d.ts.map +1 -0
- package/dist/domain/uid.js +43 -0
- package/dist/domain/uid.js.map +1 -0
- package/dist/facades/definitions.d.ts.map +1 -1
- package/dist/facades/definitions.js +46 -3
- package/dist/facades/definitions.js.map +1 -1
- package/dist/hq/defineAgent.d.ts.map +1 -1
- package/dist/hq/defineAgent.js +7 -11
- package/dist/hq/defineAgent.js.map +1 -1
- package/dist/httpServer.d.ts +3 -0
- package/dist/httpServer.d.ts.map +1 -1
- package/dist/httpServer.js +224 -43
- package/dist/httpServer.js.map +1 -1
- package/dist/identity.d.ts +123 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +312 -0
- package/dist/identity.js.map +1 -0
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +24 -1
- package/dist/kernel.js.map +1 -1
- package/dist/killSwitch.d.ts +117 -0
- package/dist/killSwitch.d.ts.map +1 -0
- package/dist/killSwitch.js +161 -0
- package/dist/killSwitch.js.map +1 -0
- package/dist/lib/atomicWrite.d.ts +23 -0
- package/dist/lib/atomicWrite.d.ts.map +1 -1
- package/dist/lib/atomicWrite.js +84 -0
- package/dist/lib/atomicWrite.js.map +1 -1
- package/dist/lib/recordIdAllocator.d.ts +21 -5
- package/dist/lib/recordIdAllocator.d.ts.map +1 -1
- package/dist/lib/recordIdAllocator.js +25 -7
- package/dist/lib/recordIdAllocator.js.map +1 -1
- package/dist/orgId.d.ts +23 -0
- package/dist/orgId.d.ts.map +1 -0
- package/dist/orgId.js +73 -0
- package/dist/orgId.js.map +1 -0
- package/dist/pairCli.d.ts +2 -0
- package/dist/pairCli.d.ts.map +1 -0
- package/dist/pairCli.js +97 -0
- package/dist/pairCli.js.map +1 -0
- package/dist/peerBroker.d.ts +40 -0
- package/dist/peerBroker.d.ts.map +1 -0
- package/dist/peerBroker.js +70 -0
- package/dist/peerBroker.js.map +1 -0
- package/dist/peerBrokerSupervisor.d.ts +21 -0
- package/dist/peerBrokerSupervisor.d.ts.map +1 -0
- package/dist/peerBrokerSupervisor.js +131 -0
- package/dist/peerBrokerSupervisor.js.map +1 -0
- package/dist/projectPaths.d.ts.map +1 -1
- package/dist/projectPaths.js +1 -19
- package/dist/projectPaths.js.map +1 -1
- package/dist/projectRegistry.d.ts +22 -0
- package/dist/projectRegistry.d.ts.map +1 -1
- package/dist/projectRegistry.js +58 -2
- package/dist/projectRegistry.js.map +1 -1
- package/dist/pty/boundary.d.ts +39 -0
- package/dist/pty/boundary.d.ts.map +1 -0
- package/dist/pty/boundary.js +100 -0
- package/dist/pty/boundary.js.map +1 -0
- package/dist/pty/errors.d.ts +6 -0
- package/dist/pty/errors.d.ts.map +1 -0
- package/dist/pty/errors.js +12 -0
- package/dist/pty/errors.js.map +1 -0
- package/dist/pty/fleet.d.ts +159 -0
- package/dist/pty/fleet.d.ts.map +1 -0
- package/dist/pty/fleet.js +543 -0
- package/dist/pty/fleet.js.map +1 -0
- package/dist/pty/launchProfile.d.ts +45 -0
- package/dist/pty/launchProfile.d.ts.map +1 -0
- package/dist/pty/launchProfile.js +149 -0
- package/dist/pty/launchProfile.js.map +1 -0
- package/dist/pty/openTerminal.d.ts +48 -0
- package/dist/pty/openTerminal.d.ts.map +1 -0
- package/dist/pty/openTerminal.js +185 -0
- package/dist/pty/openTerminal.js.map +1 -0
- package/dist/pty/pairDialog.d.ts +16 -0
- package/dist/pty/pairDialog.d.ts.map +1 -0
- package/dist/pty/pairDialog.js +121 -0
- package/dist/pty/pairDialog.js.map +1 -0
- package/dist/pty/pairing.d.ts +86 -0
- package/dist/pty/pairing.d.ts.map +1 -0
- package/dist/pty/pairing.js +351 -0
- package/dist/pty/pairing.js.map +1 -0
- package/dist/pty/routes.d.ts +49 -0
- package/dist/pty/routes.d.ts.map +1 -0
- package/dist/pty/routes.js +624 -0
- package/dist/pty/routes.js.map +1 -0
- package/dist/pty/sessions.d.ts +167 -0
- package/dist/pty/sessions.d.ts.map +1 -0
- package/dist/pty/sessions.js +513 -0
- package/dist/pty/sessions.js.map +1 -0
- package/dist/pty/tmux.d.ts +109 -0
- package/dist/pty/tmux.d.ts.map +1 -0
- package/dist/pty/tmux.js +271 -0
- package/dist/pty/tmux.js.map +1 -0
- package/dist/roster.d.ts +37 -0
- package/dist/roster.d.ts.map +1 -0
- package/dist/roster.js +126 -0
- package/dist/roster.js.map +1 -0
- package/dist/runtime/daemonMeta.d.ts +53 -0
- package/dist/runtime/daemonMeta.d.ts.map +1 -0
- package/dist/runtime/daemonMeta.js +121 -0
- package/dist/runtime/daemonMeta.js.map +1 -0
- package/dist/runtime/ensureRuntime.d.ts.map +1 -1
- package/dist/runtime/ensureRuntime.js +5 -10
- package/dist/runtime/ensureRuntime.js.map +1 -1
- package/dist/sentinelIssues.d.ts +16 -0
- package/dist/sentinelIssues.d.ts.map +1 -1
- package/dist/sentinelIssues.js +42 -1
- package/dist/sentinelIssues.js.map +1 -1
- package/dist/server.js +66 -5
- package/dist/server.js.map +1 -1
- package/dist/toolConfig.d.ts.map +1 -1
- package/dist/toolConfig.js +12 -0
- package/dist/toolConfig.js.map +1 -1
- package/dist/tools/agentic/agentQueue.d.ts.map +1 -1
- package/dist/tools/agentic/agentQueue.js +4 -0
- package/dist/tools/agentic/agentQueue.js.map +1 -1
- package/dist/tools/architect/index.d.ts +1 -0
- package/dist/tools/architect/index.d.ts.map +1 -1
- package/dist/tools/architect/index.js +45 -1
- package/dist/tools/architect/index.js.map +1 -1
- package/dist/tools/architect.d.ts.map +1 -1
- package/dist/tools/architect.js +59 -8
- package/dist/tools/architect.js.map +1 -1
- package/dist/tools/artifacts.d.ts +5 -0
- package/dist/tools/artifacts.d.ts.map +1 -0
- package/dist/tools/artifacts.js +89 -0
- package/dist/tools/artifacts.js.map +1 -0
- package/dist/tools/asks.d.ts +6 -0
- package/dist/tools/asks.d.ts.map +1 -0
- package/dist/tools/asks.js +104 -0
- package/dist/tools/asks.js.map +1 -0
- package/dist/tools/coordinator/index.d.ts +1 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +42 -2
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/data-inspector.d.ts +1 -1
- package/dist/tools/data-inspector.d.ts.map +1 -1
- package/dist/tools/data-inspector.js +1 -1
- package/dist/tools/data-inspector.js.map +1 -1
- package/dist/tools/dojo/index.d.ts.map +1 -1
- package/dist/tools/dojo/index.js +52 -3
- package/dist/tools/dojo/index.js.map +1 -1
- package/dist/tools/dojo.d.ts +62 -1
- package/dist/tools/dojo.d.ts.map +1 -1
- package/dist/tools/dojo.js +84 -1
- package/dist/tools/dojo.js.map +1 -1
- package/dist/tools/guardian.d.ts +7 -0
- package/dist/tools/guardian.d.ts.map +1 -1
- package/dist/tools/guardian.js +146 -9
- package/dist/tools/guardian.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/killswitch/index.d.ts +13 -0
- package/dist/tools/killswitch/index.d.ts.map +1 -0
- package/dist/tools/killswitch/index.js +138 -0
- package/dist/tools/killswitch/index.js.map +1 -0
- package/dist/tools/oracle/index.d.ts.map +1 -1
- package/dist/tools/oracle/index.js +8 -0
- package/dist/tools/oracle/index.js.map +1 -1
- package/dist/tools/oracle.d.ts +7 -0
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +22 -6
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/provenance.d.ts +11 -2
- package/dist/tools/provenance.d.ts.map +1 -1
- package/dist/tools/provenance.js +26 -24
- package/dist/tools/provenance.js.map +1 -1
- package/dist/tools/registry/index.d.ts.map +1 -1
- package/dist/tools/registry/index.js +24 -0
- package/dist/tools/registry/index.js.map +1 -1
- package/dist/tools/sentinel/index.d.ts.map +1 -1
- package/dist/tools/sentinel/index.js +54 -2
- package/dist/tools/sentinel/index.js.map +1 -1
- package/dist/tools/sentinel.d.ts +50 -0
- package/dist/tools/sentinel.d.ts.map +1 -1
- package/dist/tools/sentinel.js +72 -7
- package/dist/tools/sentinel.js.map +1 -1
- package/dist/tools/shared/runTracker.d.ts +2 -0
- package/dist/tools/shared/runTracker.d.ts.map +1 -1
- package/dist/tools/shared/runTracker.js +38 -0
- package/dist/tools/shared/runTracker.js.map +1 -1
- package/dist/tools/swarm.d.ts +3 -1
- package/dist/tools/swarm.d.ts.map +1 -1
- package/dist/tools/swarm.js +6 -12
- package/dist/tools/swarm.js.map +1 -1
- package/dist/tools/voice/index.d.ts +1 -0
- package/dist/tools/voice/index.d.ts.map +1 -1
- package/dist/tools/voice/index.js +33 -2
- package/dist/tools/voice/index.js.map +1 -1
- package/dist/tools/voice.d.ts +48 -1
- package/dist/tools/voice.d.ts.map +1 -1
- package/dist/tools/voice.js +63 -3
- package/dist/tools/voice.js.map +1 -1
- package/dist/transports/bridge.d.ts.map +1 -1
- package/dist/transports/bridge.js +2 -1
- package/dist/transports/bridge.js.map +1 -1
- package/dist/transports/mcp.d.ts.map +1 -1
- package/dist/transports/mcp.js +2 -1
- package/dist/transports/mcp.js.map +1 -1
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/package.json +13 -2
- package/templates/AGENT.md +3 -0
- package/templates/CLAUDE-decibel.md +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/facades/definitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/facades/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAgent.d.ts","sourceRoot":"","sources":["../../src/hq/defineAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defineAgent.d.ts","sourceRoot":"","sources":["../../src/hq/defineAgent.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EAIZ,MAAM,YAAY,CAAC;AAIpB,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO7E;AAuBD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4HhF"}
|
package/dist/hq/defineAgent.js
CHANGED
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
// register → heartbeat → poll command inbox → onCommand → ack. All over the local
|
|
5
5
|
// daemon's localhost HTTP endpoints; the SDK never holds Supabase creds.
|
|
6
6
|
// ============================================================================
|
|
7
|
-
import
|
|
8
|
-
import fs from 'fs';
|
|
9
|
-
import path from 'path';
|
|
7
|
+
import { advertisedPort, DEFAULT_DAEMON_PORT } from '../runtime/daemonMeta.js';
|
|
10
8
|
// Exported for unit tests only — NOT re-exported from index.ts, so it stays off
|
|
11
9
|
// the public @decibelsystems/tools/hq surface.
|
|
12
10
|
export function toMs(v, fallback) {
|
|
@@ -20,17 +18,15 @@ export function toMs(v, fallback) {
|
|
|
20
18
|
const n = parseInt(m[1], 10);
|
|
21
19
|
return m[2] === 's' ? n * 1000 : m[2] === 'm' ? n * 60_000 : m[2] === 'ms' ? n : n * 1000;
|
|
22
20
|
}
|
|
23
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Discover the daemon URL: explicit > ~/.decibel/daemon.meta port > :4888.
|
|
23
|
+
* An entry whose pid is no longer running is skipped rather than dialled
|
|
24
|
+
* (ISS-0179) — see runtime/daemonMeta.ts.
|
|
25
|
+
*/
|
|
24
26
|
function resolveDaemonUrl(explicit) {
|
|
25
27
|
if (explicit)
|
|
26
28
|
return explicit.replace(/\/$/, '');
|
|
27
|
-
|
|
28
|
-
const meta = JSON.parse(fs.readFileSync(path.join(os.homedir(), '.decibel', 'daemon.meta'), 'utf-8'));
|
|
29
|
-
if (meta && typeof meta.port === 'number')
|
|
30
|
-
return `http://127.0.0.1:${meta.port}`;
|
|
31
|
-
}
|
|
32
|
-
catch { /* fall through */ }
|
|
33
|
-
return 'http://127.0.0.1:4888';
|
|
29
|
+
return `http://127.0.0.1:${advertisedPort() ?? DEFAULT_DAEMON_PORT}`;
|
|
34
30
|
}
|
|
35
31
|
async function postJson(url, body, timeoutMs = 4000) {
|
|
36
32
|
const res = await fetch(url, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAgent.js","sourceRoot":"","sources":["../../src/hq/defineAgent.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAC/E,kFAAkF;AAClF,yEAAyE;AACzE,+EAA+E;
|
|
1
|
+
{"version":3,"file":"defineAgent.js","sourceRoot":"","sources":["../../src/hq/defineAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/httpServer.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
28
28
|
import type { ToolKernel } from './kernel.js';
|
|
29
29
|
import type { AgentRegistry } from './daemon.js';
|
|
30
30
|
import type { DaemonConfig } from './daemonConfig.js';
|
|
31
|
+
export declare const TERMINALS_HINT: string;
|
|
32
|
+
/** Called once when the HTTP server starts. Never throws. */
|
|
33
|
+
export declare function checkTerminals(): Promise<void>;
|
|
31
34
|
export interface HttpServerOptions {
|
|
32
35
|
port: number;
|
|
33
36
|
authToken?: string;
|
package/dist/httpServer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA2BH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAmBnE,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAqMtD,eAAO,MAAM,cAAc,QAIkD,CAAC;AAQ9E,6DAA6D;AAC7D,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAQpD;AAoUD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,UAAU,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA6gE3B;AAKD,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/httpServer.js
CHANGED
|
@@ -25,7 +25,13 @@
|
|
|
25
25
|
* { "status": "error", "error": "...", "code": "..." }
|
|
26
26
|
*/
|
|
27
27
|
import { createServer } from 'http';
|
|
28
|
-
import {
|
|
28
|
+
import { randomBytes } from 'crypto';
|
|
29
|
+
import { isLoopbackPeer, isAllowedOrigin, presentedBearer, respondToPnaPreflight, timingSafeTokenCompare, } from './pty/boundary.js';
|
|
30
|
+
import { pairingOf } from './pty/pairing.js';
|
|
31
|
+
import { isSessionWritePath, isSessionAttachPath, handleSessionWrite, handleSessionUpgrade, closeAllAttachSockets, sessionAuthConfig, handleChatWrite, handlePair, isPairPath, applyPairingAuth, } from './pty/routes.js';
|
|
32
|
+
import { readChat } from './chat.js';
|
|
33
|
+
import { listHostedSessions, SessionError } from './pty/sessions.js';
|
|
34
|
+
import { fleet } from './pty/fleet.js';
|
|
29
35
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
30
36
|
import { readFileSync, existsSync } from 'fs';
|
|
31
37
|
import { fileURLToPath } from 'url';
|
|
@@ -33,14 +39,17 @@ import { dirname, join, resolve } from 'path';
|
|
|
33
39
|
import { log } from './config.js';
|
|
34
40
|
import { writeLocalAgentSession } from './agentPresence.js';
|
|
35
41
|
import { drainCommands, setSessionToken, getSessionToken, dropSessionToken, ackOwnerOf, clearAckOwner, } from './agentInbox.js';
|
|
36
|
-
import { settleCommandFromAck
|
|
42
|
+
import { settleCommandFromAck } from './agentCommands.js';
|
|
43
|
+
import { getOrgId } from './orgId.js';
|
|
37
44
|
import { isSupabaseConfigured, getSupabaseServiceClient } from './lib/supabase.js';
|
|
38
45
|
import { shouldQueueForAgent, parseToolCall } from './httpQueueDetection.js';
|
|
39
46
|
import { getExtensionDiagnostics } from './kernel.js';
|
|
40
47
|
import { getLicenseValidator } from './license.js';
|
|
41
48
|
import { listProjects } from './projectRegistry.js';
|
|
42
|
-
import { setDaemonPort } from './daemon.js';
|
|
49
|
+
import { setDaemonPort, clearDaemonPort } from './daemon.js';
|
|
43
50
|
import { RUNTIME_PROTOCOL_VERSION } from './runtime/protocol.js';
|
|
51
|
+
import { daemonStateDir } from './runtime/daemonMeta.js';
|
|
52
|
+
import { PACKAGE } from './version.js';
|
|
44
53
|
import { wrapSuccess, wrapError, envelopeHttpStatus, } from './lib/envelope.js';
|
|
45
54
|
import { listEpics, listRepoIssues, isProjectResolutionError, } from './tools/sentinel.js';
|
|
46
55
|
import { voiceInboxAdd, } from './tools/voice.js';
|
|
@@ -85,6 +94,21 @@ class RateLimiter {
|
|
|
85
94
|
entry.count++;
|
|
86
95
|
return entry.count <= limit;
|
|
87
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* A named bucket with its own limit, outside the ip:/agent: namespaces so no
|
|
99
|
+
* header can land a request in it.
|
|
100
|
+
*/
|
|
101
|
+
checkBucket(bucket, limit) {
|
|
102
|
+
const key = `bucket:${bucket}`;
|
|
103
|
+
const now = Date.now();
|
|
104
|
+
const entry = this.windows.get(key);
|
|
105
|
+
if (!entry || now - entry.start > 60_000) {
|
|
106
|
+
this.windows.set(key, { count: 1, start: now });
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
entry.count++;
|
|
110
|
+
return entry.count <= limit;
|
|
111
|
+
}
|
|
88
112
|
/** Set a per-agent RPM override */
|
|
89
113
|
setAgentLimit(agentId, rpm) {
|
|
90
114
|
this.agentLimits.set(agentId, rpm);
|
|
@@ -104,29 +128,31 @@ class RateLimiter {
|
|
|
104
128
|
}
|
|
105
129
|
}
|
|
106
130
|
// ============================================================================
|
|
107
|
-
// Security:
|
|
131
|
+
// Security: shared trust boundary (src/pty/boundary.ts)
|
|
108
132
|
// ============================================================================
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
133
|
+
// The timing-safe compare and the loopback check live in one module so the REST
|
|
134
|
+
// surface and the session/attach surface cannot drift apart.
|
|
135
|
+
//
|
|
136
|
+
// isLocalAgentPeer is the trust boundary for the /agents/* endpoints: ONLY a
|
|
137
|
+
// process on this machine may register/poll/ack a local runtime (the 127.0.0.1
|
|
138
|
+
// bind is the principal — confused-deputy rule).
|
|
139
|
+
const isLocalAgentPeer = isLoopbackPeer;
|
|
140
|
+
/** Request headers any allowed browser origin may send. */
|
|
141
|
+
const GENERIC_ALLOWED_HEADERS = [
|
|
142
|
+
'Content-Type', 'Authorization', 'Mcp-Session-Id', 'Accept', 'X-Agent-Id', 'X-Run-Id',
|
|
143
|
+
'X-License-Key', 'X-Allowed-Facades', 'X-Scope', 'X-Request-Id', 'X-Parent-Call-Id',
|
|
144
|
+
'X-Engagement-Mode', 'X-User-Key', 'X-Org-Key',
|
|
145
|
+
'X-Pairing-Id', 'X-Pairing-Nonce', 'X-Pairing-Iat', 'X-Pairing-Sig',
|
|
146
|
+
];
|
|
147
|
+
/** The request carries the daemon auth_token or the sessions token as its bearer. */
|
|
148
|
+
function holdsLocalBearer(req, daemonToken) {
|
|
149
|
+
const presented = presentedBearer(req);
|
|
150
|
+
if (!presented)
|
|
115
151
|
return false;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
* The connection's trust boundary for the /agents/* endpoints: ONLY a process on
|
|
121
|
-
* this machine may register/poll/ack a local runtime (the 127.0.0.1 bind is the
|
|
122
|
-
* principal — confused-deputy rule). We check the real socket peer address (not a
|
|
123
|
-
* spoofable header). An EMPTY remoteAddress is rejected (was previously allowed) —
|
|
124
|
-
* a genuine TCP loopback connection always presents 127.0.0.1/::1, so empty only
|
|
125
|
-
* arises from a destroyed/odd socket and must not be treated as local.
|
|
126
|
-
*/
|
|
127
|
-
function isLocalAgentPeer(req) {
|
|
128
|
-
const peer = (req.socket.remoteAddress || '').replace('::ffff:', '');
|
|
129
|
-
return peer === '127.0.0.1' || peer === '::1';
|
|
152
|
+
if (daemonToken && timingSafeTokenCompare(presented, daemonToken))
|
|
153
|
+
return true;
|
|
154
|
+
const sessionsToken = sessionAuthConfig().token;
|
|
155
|
+
return !!sessionsToken && timingSafeTokenCompare(presented, sessionsToken);
|
|
130
156
|
}
|
|
131
157
|
/**
|
|
132
158
|
* Mint-or-return the per-session capability token (proof-of-possession the SDK must
|
|
@@ -161,18 +187,30 @@ function isLocalhostOrigin(origin) {
|
|
|
161
187
|
// ============================================================================
|
|
162
188
|
const __filename = fileURLToPath(import.meta.url);
|
|
163
189
|
const __dirname = dirname(__filename);
|
|
164
|
-
|
|
190
|
+
const PKG = PACKAGE;
|
|
191
|
+
// ----------------------------------------------------------------------------
|
|
192
|
+
// Hosted terminals: is node-pty usable? Checked once, at startup.
|
|
193
|
+
// ----------------------------------------------------------------------------
|
|
194
|
+
export const TERMINALS_HINT = 'Hosted terminals need the optional node-pty package. Reinstall with optional ' +
|
|
195
|
+
'dependencies: npm install -g @decibelsystems/tools --include=optional. ' +
|
|
196
|
+
'An npm warning that node-pty install scripts were not run is harmless: its ' +
|
|
197
|
+
'prebuilt binary is used, and Decibel fixes its helper permissions itself.';
|
|
198
|
+
let terminals = { available: null };
|
|
199
|
+
function terminalsState() {
|
|
200
|
+
return terminals;
|
|
201
|
+
}
|
|
202
|
+
/** Called once when the HTTP server starts. Never throws. */
|
|
203
|
+
export async function checkTerminals() {
|
|
165
204
|
try {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
169
|
-
return { version: pkg.version || '0.0.0', name: pkg.name || '@decibelsystems/tools' };
|
|
205
|
+
const { loadPty } = await import('./pty/sessions.js');
|
|
206
|
+
terminals = (await loadPty()) ? { available: true } : { available: false, hint: TERMINALS_HINT };
|
|
170
207
|
}
|
|
171
208
|
catch {
|
|
172
|
-
|
|
209
|
+
terminals = { available: false, hint: TERMINALS_HINT };
|
|
173
210
|
}
|
|
211
|
+
if (!terminals.available)
|
|
212
|
+
log(`HTTP Server: hosted terminals unavailable. ${TERMINALS_HINT}`);
|
|
174
213
|
}
|
|
175
|
-
const PKG = getVersion();
|
|
176
214
|
// ============================================================================
|
|
177
215
|
// Landing Page HTML
|
|
178
216
|
// ============================================================================
|
|
@@ -540,14 +578,31 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
540
578
|
// else: untrusted origin → no ACAO header (browser blocks the read).
|
|
541
579
|
}
|
|
542
580
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
|
|
543
|
-
res.setHeader('Access-Control-Allow-Headers', '
|
|
581
|
+
res.setHeader('Access-Control-Allow-Headers', GENERIC_ALLOWED_HEADERS.join(', '));
|
|
544
582
|
res.setHeader('Access-Control-Expose-Headers', 'Mcp-Session-Id');
|
|
583
|
+
// Hosted-session write routes answer their own preflight: they carry the
|
|
584
|
+
// Private Network Access header and a stricter origin allowlist than the
|
|
585
|
+
// generic localhost CORS above (src/pty/routes.ts).
|
|
586
|
+
// A preflight from an allowlisted HQ origin (the dev server, or deployed HQ
|
|
587
|
+
// for paired requests) gets the Private Network Access header and the
|
|
588
|
+
// pairing headers; without PNA an https page cannot reach 127.0.0.1 at all.
|
|
589
|
+
if (isDaemon && req.method === 'OPTIONS' && isAllowedOrigin(req.headers.origin, sessionAuthConfig().allowedOrigins)) {
|
|
590
|
+
respondToPnaPreflight(req, res, sessionAuthConfig().allowedOrigins, GENERIC_ALLOWED_HEADERS);
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
545
593
|
// (a) Handle preflight OPTIONS requests
|
|
546
594
|
if (req.method === 'OPTIONS') {
|
|
547
595
|
res.writeHead(204);
|
|
548
596
|
res.end();
|
|
549
597
|
return;
|
|
550
598
|
}
|
|
599
|
+
// Signed requests from a paired browser (ADR-0012 in this repo). Verified
|
|
600
|
+
// here, once, before rate limiting and auth: a verified request is marked
|
|
601
|
+
// (pairingOf) and stands in for a bearer everywhere below. A request that
|
|
602
|
+
// CLAIMS a pairing and fails is refused outright rather than falling
|
|
603
|
+
// through as anonymous.
|
|
604
|
+
if (isDaemon && !applyPairingAuth(req, res, url))
|
|
605
|
+
return;
|
|
551
606
|
// HOSTED FAIL-CLOSED, checked EARLY (before the rate limiter) so an
|
|
552
607
|
// unauthenticated hosted caller can't consume/poison the rate-limit map or any
|
|
553
608
|
// downstream state before being refused. Public infra routes stay open so
|
|
@@ -564,9 +619,20 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
564
619
|
return;
|
|
565
620
|
}
|
|
566
621
|
// Rate limiting (check before auth to prevent brute force)
|
|
622
|
+
//
|
|
623
|
+
// Every local caller is 127.0.0.1, so by IP they all share one 100-rpm
|
|
624
|
+
// bucket: an HQ tab refreshing its roster used to spend it for the whole
|
|
625
|
+
// machine, and then attach-token and every hook call got RATE_LIMITED.
|
|
626
|
+
// A loopback caller that proves it holds the daemon bearer or the sessions
|
|
627
|
+
// bearer (HQ's dev proxy injects one server-side) gets its own, larger
|
|
628
|
+
// bucket. Anonymous loopback keeps the shared one.
|
|
567
629
|
const clientIp = (req.socket.remoteAddress || '127.0.0.1').replace('::ffff:', '');
|
|
568
630
|
const reqAgentId = req.headers['x-agent-id'];
|
|
569
|
-
|
|
631
|
+
const trustedLocal = isDaemon && isLoopbackPeer(req) && (!!pairingOf(req) || holdsLocalBearer(req, authToken));
|
|
632
|
+
const withinLimit = trustedLocal
|
|
633
|
+
? rateLimiter.checkBucket('trusted-local', Math.max(rateLimitRpm * 20, 2000))
|
|
634
|
+
: rateLimiter.check(clientIp, reqAgentId);
|
|
635
|
+
if (!withinLimit) {
|
|
570
636
|
log(`HTTP: Rate limited ${reqAgentId || clientIp}`);
|
|
571
637
|
sendJson(res, 429, wrapError('Too many requests (rate limit exceeded)', 'RATE_LIMITED'));
|
|
572
638
|
return;
|
|
@@ -579,6 +645,25 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
579
645
|
activeRequests.add(req);
|
|
580
646
|
res.on('finish', () => activeRequests.delete(req));
|
|
581
647
|
res.on('close', () => activeRequests.delete(req));
|
|
648
|
+
// Hosted-session writes (attach-token, control, spawn) are gated on the
|
|
649
|
+
// sessions bearer, not the daemon auth_token, so they are routed BEFORE the
|
|
650
|
+
// daemon's own auth gate. See src/pty/routes.ts for why. Daemon mode only:
|
|
651
|
+
// a hosted --http server has no business starting local terminals.
|
|
652
|
+
if (isDaemon && isSessionWritePath(path)) {
|
|
653
|
+
await handleSessionWrite(req, res, path);
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
// Pairing: request, status, challenge, revoke. Pre-auth by nature; none of
|
|
657
|
+
// them approves anything (approval is the CLI, on this machine).
|
|
658
|
+
if (isDaemon && isPairPath(path)) {
|
|
659
|
+
await handlePair(req, res, path);
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
// POST /chat puts text into other sessions: same gate as the session writes.
|
|
663
|
+
if (isDaemon && path === '/chat' && req.method === 'POST') {
|
|
664
|
+
await handleChatWrite(req, res);
|
|
665
|
+
return;
|
|
666
|
+
}
|
|
582
667
|
// (c) Root health check - GET / returns 200
|
|
583
668
|
if (path === '/' && req.method === 'GET') {
|
|
584
669
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
@@ -623,6 +708,10 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
623
708
|
pro: licenseTier !== 'core',
|
|
624
709
|
license_tier: licenseTier,
|
|
625
710
|
supabase_configured: isSupabaseConfigured(),
|
|
711
|
+
// Hosted terminals (HQ's Live agents, open in Ghostty) need the optional
|
|
712
|
+
// node-pty package. Without it the daemon runs normally and says so here
|
|
713
|
+
// rather than failing later at attach time.
|
|
714
|
+
terminals: terminalsState(),
|
|
626
715
|
// Facades whose dependency is failing. `{}` is the healthy case — a
|
|
627
716
|
// non-empty object means calls to those facades are being refused fast
|
|
628
717
|
// rather than left to time out. See runtime/circuitBreaker.ts.
|
|
@@ -659,14 +748,14 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
659
748
|
sendJson(res, 401, wrapError('This endpoint requires authentication. Hosted (--http) mode must be started with DECIBEL_AUTH_TOKEN set.', 'AUTH_NOT_CONFIGURED'));
|
|
660
749
|
return;
|
|
661
750
|
}
|
|
662
|
-
if (authToken) {
|
|
751
|
+
if (authToken && !pairingOf(req)) {
|
|
663
752
|
const authHeader = req.headers.authorization;
|
|
664
753
|
if (!authHeader || !timingSafeTokenCompare(authHeader, `Bearer ${authToken}`)) {
|
|
665
754
|
sendJson(res, 401, wrapError('Unauthorized', 'UNAUTHORIZED'));
|
|
666
755
|
return;
|
|
667
756
|
}
|
|
668
757
|
}
|
|
669
|
-
const dispatchLogPath = join(
|
|
758
|
+
const dispatchLogPath = join(daemonStateDir(), 'logs', 'dispatch.jsonl');
|
|
670
759
|
try {
|
|
671
760
|
const content = readFileSync(dispatchLogPath, 'utf-8');
|
|
672
761
|
const lines = content.trim().split('\n').filter(Boolean);
|
|
@@ -764,8 +853,9 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
764
853
|
sendJson(res, 401, wrapError('This endpoint requires authentication. Hosted (--http) mode must be started with DECIBEL_AUTH_TOKEN set.', 'AUTH_NOT_CONFIGURED'));
|
|
765
854
|
return;
|
|
766
855
|
}
|
|
767
|
-
// Auth check (timing-safe comparison to prevent timing attacks)
|
|
768
|
-
|
|
856
|
+
// Auth check (timing-safe comparison to prevent timing attacks). A request
|
|
857
|
+
// verified under an approved pairing already proved more than a bearer.
|
|
858
|
+
if (authToken && !pairingOf(req)) {
|
|
769
859
|
const authHeader = req.headers.authorization;
|
|
770
860
|
if (!authHeader || !timingSafeTokenCompare(authHeader, `Bearer ${authToken}`)) {
|
|
771
861
|
log('HTTP: Unauthorized request');
|
|
@@ -776,6 +866,44 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
776
866
|
// ========================================================================
|
|
777
867
|
// Simple REST Endpoints (for external AI agents)
|
|
778
868
|
// ========================================================================
|
|
869
|
+
// GET /sessions[?project_id=<id>] — hosted-session roster for HQ (ADR-0012 /
|
|
870
|
+
// decibel-hq EPIC-0015). Without project_id, every session on the machine.
|
|
871
|
+
// Read-only, so it sits behind the normal daemon gate; the write routes are
|
|
872
|
+
// handled above with their own bearer.
|
|
873
|
+
if (isDaemon && path === '/sessions' && req.method === 'GET') {
|
|
874
|
+
const projectId = url.searchParams.get('project_id') || undefined;
|
|
875
|
+
try {
|
|
876
|
+
const sessions = await listHostedSessions(projectId);
|
|
877
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
878
|
+
res.end(JSON.stringify({ sessions }));
|
|
879
|
+
}
|
|
880
|
+
catch (err) {
|
|
881
|
+
if (err instanceof SessionError) {
|
|
882
|
+
sendJson(res, err.status, wrapError(err.message, err.code));
|
|
883
|
+
}
|
|
884
|
+
else {
|
|
885
|
+
sendJson(res, 500, wrapError(err instanceof Error ? err.message : String(err), 'INTERNAL'));
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
return;
|
|
889
|
+
}
|
|
890
|
+
// GET /sessions/last-fleet — the sessions to offer for restore (decibel-hq
|
|
891
|
+
// ADR-0018). Read-only, behind the normal daemon gate like GET /sessions.
|
|
892
|
+
if (isDaemon && path === '/sessions/last-fleet' && req.method === 'GET') {
|
|
893
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
894
|
+
res.end(JSON.stringify(fleet().lastFleet()));
|
|
895
|
+
return;
|
|
896
|
+
}
|
|
897
|
+
// GET /chat?since=<id>&limit= — the HQ chat log (decibel-hq EPIC-0016).
|
|
898
|
+
// Read-only, behind the normal daemon gate. human_peer_id changes whenever
|
|
899
|
+
// the peer re-registers, so clients read it from here every time.
|
|
900
|
+
if (isDaemon && path === '/chat' && req.method === 'GET') {
|
|
901
|
+
const since = Number(url.searchParams.get('since') ?? 0) || 0;
|
|
902
|
+
const limit = Number(url.searchParams.get('limit') ?? 200) || 200;
|
|
903
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
904
|
+
res.end(JSON.stringify(readChat(since, limit)));
|
|
905
|
+
return;
|
|
906
|
+
}
|
|
779
907
|
// GET /tools - List available tools
|
|
780
908
|
// MCP tool definitions, verbatim — the shape a `tools/list` response needs.
|
|
781
909
|
//
|
|
@@ -953,7 +1081,13 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
953
1081
|
sendJson(res, 403, wrapError('Invalid or missing session token', 'BAD_SESSION_TOKEN'));
|
|
954
1082
|
return;
|
|
955
1083
|
}
|
|
956
|
-
|
|
1084
|
+
// No org means no dispatcher ran, so nothing can be queued for this session.
|
|
1085
|
+
let org = null;
|
|
1086
|
+
try {
|
|
1087
|
+
org = getOrgId();
|
|
1088
|
+
}
|
|
1089
|
+
catch { /* malformed: the startup gate reports it */ }
|
|
1090
|
+
const commands = org ? drainCommands(sessionKey, org) : [];
|
|
957
1091
|
sendJson(res, 200, wrapSuccess({ session_key: sessionKey, commands, count: commands.length }));
|
|
958
1092
|
return;
|
|
959
1093
|
}
|
|
@@ -1798,6 +1932,16 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
1798
1932
|
// ========================================================================
|
|
1799
1933
|
// Studio API Endpoints (frontend_v0.2 compatible)
|
|
1800
1934
|
// ========================================================================
|
|
1935
|
+
// Tier guard: these REST shortcuts call studio (pro-tier) tools directly,
|
|
1936
|
+
// bypassing kernel dispatch where tier gating normally lives. Enforce it
|
|
1937
|
+
// here once for all /api/generate-* routes. (crucible re-run 2026-06-07)
|
|
1938
|
+
if (path.startsWith('/api/generate-') && req.method === 'POST') {
|
|
1939
|
+
const tier = await resolveTier(req, configLicenseKey);
|
|
1940
|
+
if (tier === 'core') {
|
|
1941
|
+
sendJson(res, 403, wrapError('Studio generation requires a pro license', 'TIER_REQUIRED'));
|
|
1942
|
+
return;
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1801
1945
|
// POST /api/generate-flux-kontext-image - Start image generation
|
|
1802
1946
|
if (path === '/api/generate-flux-kontext-image' && req.method === 'POST') {
|
|
1803
1947
|
try {
|
|
@@ -2151,17 +2295,47 @@ export async function startHttpServer(server, kernelInstance, options) {
|
|
|
2151
2295
|
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
2152
2296
|
res.end(JSON.stringify({ error: 'Not found' }));
|
|
2153
2297
|
});
|
|
2298
|
+
// WebSocket upgrades. The only upgrade this server accepts is a hosted-session
|
|
2299
|
+
// attach (daemon mode); everything else is refused rather than left hanging,
|
|
2300
|
+
// since Node leaves an unhandled upgrade socket open until it times out.
|
|
2301
|
+
httpServer.on('upgrade', (req, socket, head) => {
|
|
2302
|
+
const upgradeUrl = new URL(req.url || '/', 'http://127.0.0.1');
|
|
2303
|
+
if (isDaemon && isSessionAttachPath(upgradeUrl.pathname)) {
|
|
2304
|
+
handleSessionUpgrade(req, socket, head, upgradeUrl).catch((err) => {
|
|
2305
|
+
log(`HTTP: attach upgrade failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2306
|
+
try {
|
|
2307
|
+
socket.destroy();
|
|
2308
|
+
}
|
|
2309
|
+
catch { /* ignore */ }
|
|
2310
|
+
});
|
|
2311
|
+
return;
|
|
2312
|
+
}
|
|
2313
|
+
socket.write('HTTP/1.1 404 Not Found\r\nContent-Length: 0\r\nConnection: close\r\n\r\n');
|
|
2314
|
+
socket.destroy();
|
|
2315
|
+
});
|
|
2154
2316
|
// Configure HTTP server timeouts to prevent premature connection drops
|
|
2155
2317
|
httpServer.keepAliveTimeout = timeoutMs;
|
|
2156
2318
|
httpServer.headersTimeout = timeoutMs + 1000; // Slightly longer than keepAliveTimeout
|
|
2157
2319
|
httpServer.listen(port, host, () => {
|
|
2158
2320
|
log(`HTTP Server listening on http://${host}:${port}`);
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2321
|
+
void checkTerminals();
|
|
2322
|
+
// Advertise port + pid in daemon.meta so clients can discover the daemon —
|
|
2323
|
+
// but ONLY as the daemon. daemon.meta is machine-global: the session-init
|
|
2324
|
+
// hook, the close hook, the HQ client and ensureRuntime all follow it. A
|
|
2325
|
+
// plain `--http` run is a process someone started for a reason of their own
|
|
2326
|
+
// (a test, a second checkout, CI, the hosted deployment), and when it
|
|
2327
|
+
// advertised, every hook on the machine followed it to a port that died
|
|
2328
|
+
// with it (ISS-0179).
|
|
2329
|
+
if (isDaemon) {
|
|
2330
|
+
try {
|
|
2331
|
+
setDaemonPort(port);
|
|
2332
|
+
}
|
|
2333
|
+
catch (err) {
|
|
2334
|
+
log(`Daemon: failed to write port to meta: ${err instanceof Error ? err.message : String(err)}`);
|
|
2335
|
+
}
|
|
2162
2336
|
}
|
|
2163
|
-
|
|
2164
|
-
log(`
|
|
2337
|
+
else {
|
|
2338
|
+
log(`HTTP Server: not advertising in daemon.meta (not --daemon); clients keep their existing discovery`);
|
|
2165
2339
|
}
|
|
2166
2340
|
console.log(`
|
|
2167
2341
|
╔══════════════════════════════════════════════════════════════╗
|
|
@@ -2212,6 +2386,8 @@ ${authToken ? '║ Auth: Bearer token required
|
|
|
2212
2386
|
log(`HTTP: ${activeRequests.size} request(s) still active after 10s drain timeout`);
|
|
2213
2387
|
}
|
|
2214
2388
|
}
|
|
2389
|
+
// Close attach sockets (their tmux sessions live on)
|
|
2390
|
+
closeAllAttachSockets();
|
|
2215
2391
|
// Close SSE connections
|
|
2216
2392
|
for (const conn of activeSseConnections) {
|
|
2217
2393
|
try {
|
|
@@ -2228,6 +2404,11 @@ ${authToken ? '║ Auth: Bearer token required
|
|
|
2228
2404
|
// If already closed, resolve immediately
|
|
2229
2405
|
setTimeout(resolve, 100);
|
|
2230
2406
|
});
|
|
2407
|
+
// Withdraw discovery if we owned it, so a clean shutdown does not leave
|
|
2408
|
+
// every client on the machine dialling a port nothing is serving
|
|
2409
|
+
// (ISS-0179). clearDaemonPort only clears an entry that is ours.
|
|
2410
|
+
if (isDaemon)
|
|
2411
|
+
clearDaemonPort();
|
|
2231
2412
|
log('HTTP server stopped');
|
|
2232
2413
|
},
|
|
2233
2414
|
};
|