@decibelsystems/tools 2.2.0-beta.0 → 3.1.0
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 +226 -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 +82 -0
- package/dist/agentPresence.d.ts.map +1 -1
- package/dist/agentPresence.js +194 -26
- package/dist/agentPresence.js.map +1 -1
- package/dist/agentic/index.d.ts +18 -8
- package/dist/agentic/index.d.ts.map +1 -1
- package/dist/agentic/index.js +18 -144
- package/dist/agentic/index.js.map +1 -1
- package/dist/agentic/types.d.ts +106 -0
- package/dist/agentic/types.d.ts.map +1 -1
- package/dist/agentic/types.js +77 -1
- package/dist/agentic/types.js.map +1 -1
- package/dist/architectAdrs.d.ts +27 -3
- package/dist/architectAdrs.d.ts.map +1 -1
- package/dist/architectAdrs.js +92 -4
- 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/client/transports.d.ts.map +1 -1
- package/dist/client/transports.js +13 -3
- package/dist/client/transports.js.map +1 -1
- package/dist/daemon.d.ts +33 -3
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +225 -52
- package/dist/daemon.js.map +1 -1
- package/dist/daemonConfig.d.ts +46 -0
- package/dist/daemonConfig.d.ts.map +1 -1
- package/dist/daemonConfig.js +57 -12
- package/dist/daemonConfig.js.map +1 -1
- package/dist/decibelPaths.d.ts.map +1 -1
- package/dist/decibelPaths.js +39 -6
- package/dist/decibelPaths.js.map +1 -1
- package/dist/domain/issue.d.ts +81 -0
- package/dist/domain/issue.d.ts.map +1 -0
- package/dist/domain/issue.js +106 -0
- package/dist/domain/issue.js.map +1 -0
- package/dist/domain/issueCodec.d.ts +39 -0
- package/dist/domain/issueCodec.d.ts.map +1 -0
- package/dist/domain/issueCodec.js +308 -0
- package/dist/domain/issueCodec.js.map +1 -0
- package/dist/domain/issueRepository.d.ts +124 -0
- package/dist/domain/issueRepository.d.ts.map +1 -0
- package/dist/domain/issueRepository.js +296 -0
- package/dist/domain/issueRepository.js.map +1 -0
- 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 +0 -1
- package/dist/facades/definitions.d.ts.map +1 -1
- package/dist/facades/definitions.js +140 -116
- package/dist/facades/definitions.js.map +1 -1
- package/dist/facades/index.d.ts +2 -1
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/facades/index.js.map +1 -1
- package/dist/facades/types.d.ts +17 -0
- package/dist/facades/types.d.ts.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/httpArgs.d.ts +11 -0
- package/dist/httpArgs.d.ts.map +1 -0
- package/dist/httpArgs.js +39 -0
- package/dist/httpArgs.js.map +1 -0
- package/dist/httpServer.d.ts +1 -12
- package/dist/httpServer.d.ts.map +1 -1
- package/dist/httpServer.js +298 -144
- 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 +46 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +334 -26
- 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/agent-services/assumptions.d.ts.map +1 -1
- package/dist/lib/agent-services/assumptions.js +8 -2
- package/dist/lib/agent-services/assumptions.js.map +1 -1
- package/dist/lib/atomicWrite.d.ts +49 -0
- package/dist/lib/atomicWrite.d.ts.map +1 -0
- package/dist/lib/atomicWrite.js +157 -0
- package/dist/lib/atomicWrite.js.map +1 -0
- package/dist/lib/envelope.d.ts +31 -0
- package/dist/lib/envelope.d.ts.map +1 -0
- package/dist/lib/envelope.js +80 -0
- package/dist/lib/envelope.js.map +1 -0
- package/dist/lib/fileLock.d.ts +38 -0
- package/dist/lib/fileLock.d.ts.map +1 -0
- package/dist/lib/fileLock.js +124 -0
- package/dist/lib/fileLock.js.map +1 -0
- package/dist/lib/recordIdAllocator.d.ts +102 -0
- package/dist/lib/recordIdAllocator.d.ts.map +1 -0
- package/dist/lib/recordIdAllocator.js +179 -0
- package/dist/lib/recordIdAllocator.js.map +1 -0
- 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 +69 -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/circuitBreaker.d.ts +95 -0
- package/dist/runtime/circuitBreaker.d.ts.map +1 -0
- package/dist/runtime/circuitBreaker.js +178 -0
- package/dist/runtime/circuitBreaker.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 +103 -0
- package/dist/runtime/ensureRuntime.d.ts.map +1 -0
- package/dist/runtime/ensureRuntime.js +276 -0
- package/dist/runtime/ensureRuntime.js.map +1 -0
- package/dist/runtime/extensions.d.ts +57 -0
- package/dist/runtime/extensions.d.ts.map +1 -0
- package/dist/runtime/extensions.js +216 -0
- package/dist/runtime/extensions.js.map +1 -0
- package/dist/runtime/localHttp.d.ts +24 -0
- package/dist/runtime/localHttp.d.ts.map +1 -0
- package/dist/runtime/localHttp.js +84 -0
- package/dist/runtime/localHttp.js.map +1 -0
- package/dist/runtime/projectResolution.d.ts +29 -0
- package/dist/runtime/projectResolution.d.ts.map +1 -0
- package/dist/runtime/projectResolution.js +67 -0
- package/dist/runtime/projectResolution.js.map +1 -0
- package/dist/runtime/protocol.d.ts +62 -0
- package/dist/runtime/protocol.d.ts.map +1 -0
- package/dist/runtime/protocol.js +74 -0
- package/dist/runtime/protocol.js.map +1 -0
- package/dist/sentinelIssues.d.ts +42 -2
- package/dist/sentinelIssues.d.ts.map +1 -1
- package/dist/sentinelIssues.js +167 -65
- package/dist/sentinelIssues.js.map +1 -1
- package/dist/server.js +123 -15
- 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/agentic/index.d.ts.map +1 -1
- package/dist/tools/agentic/index.js +28 -2
- package/dist/tools/agentic/index.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 +52 -3
- 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/context.d.ts +10 -5
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +45 -18
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/coordinator/coordinator.d.ts.map +1 -1
- package/dist/tools/coordinator/coordinator.js +48 -19
- package/dist/tools/coordinator/coordinator.js.map +1 -1
- 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/crit.d.ts +2 -1
- package/dist/tools/crit.d.ts.map +1 -1
- package/dist/tools/crit.js +19 -4
- package/dist/tools/crit.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/designer/index.d.ts.map +1 -1
- package/dist/tools/designer/index.js +4 -3
- package/dist/tools/designer/index.js.map +1 -1
- package/dist/tools/designer/lateral-tools.d.ts.map +1 -1
- package/dist/tools/designer/lateral-tools.js +4 -2
- package/dist/tools/designer/lateral-tools.js.map +1 -1
- package/dist/tools/designer.d.ts +2 -1
- package/dist/tools/designer.d.ts.map +1 -1
- package/dist/tools/designer.js +24 -12
- package/dist/tools/designer.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 +65 -3
- package/dist/tools/dojo.d.ts.map +1 -1
- package/dist/tools/dojo.js +148 -23
- package/dist/tools/dojo.js.map +1 -1
- package/dist/tools/friction.d.ts.map +1 -1
- package/dist/tools/friction.js +16 -6
- package/dist/tools/friction.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 +152 -11
- package/dist/tools/guardian.js.map +1 -1
- package/dist/tools/hygiene/oracle-hygiene.d.ts.map +1 -1
- package/dist/tools/hygiene/oracle-hygiene.js +8 -2
- package/dist/tools/hygiene/oracle-hygiene.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +33 -18
- 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/learnings.d.ts +2 -1
- package/dist/tools/learnings.d.ts.map +1 -1
- package/dist/tools/learnings.js +31 -15
- package/dist/tools/learnings.js.map +1 -1
- 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 +41 -12
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/policy.d.ts +2 -1
- package/dist/tools/policy.d.ts.map +1 -1
- package/dist/tools/policy.js +28 -9
- package/dist/tools/policy.js.map +1 -1
- package/dist/tools/postoffice/index.d.ts +10 -0
- package/dist/tools/postoffice/index.d.ts.map +1 -0
- package/dist/tools/postoffice/index.js +218 -0
- package/dist/tools/postoffice/index.js.map +1 -0
- package/dist/tools/postoffice.d.ts +78 -0
- package/dist/tools/postoffice.d.ts.map +1 -0
- package/dist/tools/postoffice.js +199 -0
- package/dist/tools/postoffice.js.map +1 -0
- package/dist/tools/provenance.d.ts +18 -2
- package/dist/tools/provenance.d.ts.map +1 -1
- package/dist/tools/provenance.js +68 -40
- 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 +1 -0
- package/dist/tools/sentinel/index.d.ts.map +1 -1
- package/dist/tools/sentinel/index.js +142 -6
- package/dist/tools/sentinel/index.js.map +1 -1
- package/dist/tools/sentinel.d.ts +152 -1
- package/dist/tools/sentinel.d.ts.map +1 -1
- package/dist/tools/sentinel.js +609 -328
- package/dist/tools/sentinel.js.map +1 -1
- package/dist/tools/shared/index.d.ts +2 -1
- package/dist/tools/shared/index.d.ts.map +1 -1
- package/dist/tools/shared/index.js +2 -1
- package/dist/tools/shared/index.js.map +1 -1
- package/dist/tools/shared/response.d.ts +24 -0
- package/dist/tools/shared/response.d.ts.map +1 -1
- package/dist/tools/shared/response.js +61 -7
- package/dist/tools/shared/response.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/shared/storeRead.d.ts +153 -0
- package/dist/tools/shared/storeRead.d.ts.map +1 -0
- package/dist/tools/shared/storeRead.js +242 -0
- package/dist/tools/shared/storeRead.js.map +1 -0
- 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/testSpec.d.ts +3 -2
- package/dist/tools/testSpec.d.ts.map +1 -1
- package/dist/tools/testSpec.js +51 -14
- package/dist/tools/testSpec.js.map +1 -1
- package/dist/tools/vector.d.ts +33 -1
- package/dist/tools/vector.d.ts.map +1 -1
- package/dist/tools/vector.js +31 -5
- package/dist/tools/vector.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/tools/zoom/index.d.ts +15 -0
- package/dist/tools/zoom/index.d.ts.map +1 -0
- package/dist/tools/zoom/index.js +174 -0
- package/dist/tools/zoom/index.js.map +1 -0
- package/dist/tools/zoom.d.ts +234 -0
- package/dist/tools/zoom.d.ts.map +1 -0
- package/dist/tools/zoom.js +627 -0
- package/dist/tools/zoom.js.map +1 -0
- package/dist/transports/bridge.d.ts +1 -1
- package/dist/transports/bridge.d.ts.map +1 -1
- package/dist/transports/bridge.js +4 -1
- package/dist/transports/bridge.js.map +1 -1
- package/dist/transports/http.d.ts +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +3 -1
- package/dist/transports/http.js.map +1 -1
- package/dist/transports/index.d.ts +1 -0
- package/dist/transports/index.d.ts.map +1 -1
- package/dist/transports/index.js +1 -0
- package/dist/transports/index.js.map +1 -1
- package/dist/transports/mcp.d.ts +1 -1
- package/dist/transports/mcp.d.ts.map +1 -1
- package/dist/transports/mcp.js +9 -4
- package/dist/transports/mcp.js.map +1 -1
- package/dist/transports/stdio.d.ts +1 -1
- package/dist/transports/stdio.d.ts.map +1 -1
- package/dist/transports/stdio.js +2 -0
- package/dist/transports/stdio.js.map +1 -1
- package/dist/transports/thinStdio.d.ts +22 -0
- package/dist/transports/thinStdio.d.ts.map +1 -0
- package/dist/transports/thinStdio.js +218 -0
- package/dist/transports/thinStdio.js.map +1 -0
- package/dist/transports/types.d.ts +8 -1
- package/dist/transports/types.d.ts.map +1 -1
- package/dist/types/agent-services.d.ts +7 -0
- package/dist/types/agent-services.d.ts.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 +20 -4
- package/templates/AGENT.md +3 -0
- package/templates/CLAUDE-decibel.md +11 -0
- package/templates/com.decibel.daemon.plist +6 -1
- package/dist/tools/deck.d.ts +0 -11
- package/dist/tools/deck.d.ts.map +0 -1
- package/dist/tools/deck.js +0 -1656
- package/dist/tools/deck.js.map +0 -1
- package/dist/tools/mother.d.ts +0 -11
- package/dist/tools/mother.d.ts.map +0 -1
- package/dist/tools/mother.js +0 -503
- package/dist/tools/mother.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -3
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -189
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/senken.d.ts +0 -11
- package/dist/tools/senken.d.ts.map +0 -1
- package/dist/tools/senken.js +0 -482
- package/dist/tools/senken.js.map +0 -1
- package/dist/tools/terminal.d.ts +0 -17
- package/dist/tools/terminal.d.ts.map +0 -1
- package/dist/tools/terminal.js +0 -968
- package/dist/tools/terminal.js.map +0 -1
- package/dist/tools/toolsIndex.d.ts +0 -5
- package/dist/tools/toolsIndex.d.ts.map +0 -1
- package/dist/tools/toolsIndex.js +0 -37
- package/dist/tools/toolsIndex.js.map +0 -1
package/dist/daemon.js
CHANGED
|
@@ -10,16 +10,22 @@ import { homedir } from 'os';
|
|
|
10
10
|
import { execSync } from 'child_process';
|
|
11
11
|
import { fileURLToPath } from 'url';
|
|
12
12
|
import { log } from './config.js';
|
|
13
|
+
import { metaPath, daemonStateDir, readDaemonMeta, heldByAnotherProcess, } from './runtime/daemonMeta.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Paths
|
|
15
16
|
// ============================================================================
|
|
16
17
|
const DECIBEL_HOME = join(homedir(), '.decibel');
|
|
17
|
-
|
|
18
|
-
const
|
|
18
|
+
// Pid and logs follow DECIBEL_DAEMON_SIDECAR; the env file stays shared.
|
|
19
|
+
const STATE_DIR = daemonStateDir();
|
|
20
|
+
const PID_PATH = join(STATE_DIR, 'daemon.pid');
|
|
21
|
+
const LOG_DIR = join(STATE_DIR, 'logs');
|
|
19
22
|
const LOG_PATH = join(LOG_DIR, 'daemon.log');
|
|
20
|
-
const
|
|
23
|
+
const LAUNCHD_LABEL = 'com.decibel.daemon';
|
|
24
|
+
const PLIST_NAME = `${LAUNCHD_LABEL}.plist`;
|
|
21
25
|
const LAUNCH_AGENTS_DIR = join(homedir(), 'Library', 'LaunchAgents');
|
|
22
26
|
const PLIST_DEST = join(LAUNCH_AGENTS_DIR, PLIST_NAME);
|
|
27
|
+
const SYSTEM_LAUNCH_AGENTS_DIR = '/Library/LaunchAgents';
|
|
28
|
+
const ENV_FILE_PATH = join(DECIBEL_HOME, 'env');
|
|
23
29
|
function ensureDir(dir) {
|
|
24
30
|
if (!existsSync(dir)) {
|
|
25
31
|
mkdirSync(dir, { recursive: true });
|
|
@@ -57,7 +63,7 @@ export function readPid() {
|
|
|
57
63
|
* Write current process PID to file.
|
|
58
64
|
*/
|
|
59
65
|
export function writePid() {
|
|
60
|
-
ensureDir(
|
|
66
|
+
ensureDir(STATE_DIR);
|
|
61
67
|
writeFileSync(PID_PATH, String(process.pid), 'utf-8');
|
|
62
68
|
log(`Daemon: PID ${process.pid} written to ${PID_PATH}`);
|
|
63
69
|
}
|
|
@@ -136,28 +142,36 @@ export function rotateLog(filePath, maxSizeBytes = DEFAULT_MAX_LOG_BYTES, maxFil
|
|
|
136
142
|
// ============================================================================
|
|
137
143
|
// Crash Loop Protection
|
|
138
144
|
// ============================================================================
|
|
139
|
-
const META_PATH = join(DECIBEL_HOME, 'daemon.meta');
|
|
140
145
|
const MAX_CRASH_COUNT = 5;
|
|
141
146
|
const CRASH_WINDOW_MS = 60_000; // 60 seconds
|
|
142
147
|
const HEALTH_RESET_MS = 5 * 60_000; // 5 minutes
|
|
143
148
|
function readMeta() {
|
|
144
|
-
|
|
145
|
-
return JSON.parse(readFileSync(META_PATH, 'utf-8'));
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
149
|
+
return readDaemonMeta();
|
|
150
150
|
}
|
|
151
151
|
function writeMeta(meta) {
|
|
152
|
-
ensureDir(
|
|
153
|
-
|
|
152
|
+
ensureDir(STATE_DIR);
|
|
153
|
+
// Merge so crash-loop / reset writes (and a second instance that exits on
|
|
154
|
+
// "already running") don't drop the port/pid setDaemonPort recorded.
|
|
155
|
+
writeFileSync(metaPath(), JSON.stringify({ ...readMeta(), ...meta }), 'utf-8');
|
|
154
156
|
}
|
|
155
157
|
/**
|
|
156
158
|
* Record the bound port and pid in daemon.meta so clients (HQ, CLI, scripts)
|
|
157
|
-
* can discover the daemon without hardcoding
|
|
158
|
-
* server has actually bound the
|
|
159
|
+
* can discover the daemon without hardcoding a port. Called after the HTTP
|
|
160
|
+
* server has actually bound, and ONLY by the daemon — see daemonMeta.ts for why
|
|
161
|
+
* a plain `--http` run advertising here broke every hook on the machine.
|
|
162
|
+
*
|
|
163
|
+
* Refuses to take discovery from a live process that is not us. Two daemons
|
|
164
|
+
* cannot both be "the" daemon, and the loser of that race used to be whichever
|
|
165
|
+
* one started first, silently. Returns false when it declined.
|
|
159
166
|
*/
|
|
160
167
|
export function setDaemonPort(port) {
|
|
168
|
+
const incumbent = heldByAnotherProcess();
|
|
169
|
+
if (incumbent) {
|
|
170
|
+
log(`Daemon: NOT advertising port ${port} — pid ${incumbent.pid} is alive and already ` +
|
|
171
|
+
`advertising port ${incumbent.port}. Clients keep following it. ` +
|
|
172
|
+
`Stop that process first if this one should own discovery.`);
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
161
175
|
const existing = readMeta();
|
|
162
176
|
writeMeta({
|
|
163
177
|
started_at: existing?.started_at ?? new Date().toISOString(),
|
|
@@ -165,6 +179,25 @@ export function setDaemonPort(port) {
|
|
|
165
179
|
port,
|
|
166
180
|
pid: process.pid,
|
|
167
181
|
});
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Withdraw our advertisement on the way out, so a clean shutdown does not leave
|
|
186
|
+
* clients dialling a port we are no longer serving. Only clears an entry that
|
|
187
|
+
* is ours — a successor that already took over must not be erased.
|
|
188
|
+
*/
|
|
189
|
+
export function clearDaemonPort() {
|
|
190
|
+
const meta = readMeta();
|
|
191
|
+
if (!meta || meta.pid !== process.pid)
|
|
192
|
+
return;
|
|
193
|
+
try {
|
|
194
|
+
const { port: _port, pid: _pid, ...rest } = meta;
|
|
195
|
+
writeFileSync(metaPath(), JSON.stringify(rest), 'utf-8');
|
|
196
|
+
log('Daemon: withdrew port advertisement from daemon.meta');
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
log(`Daemon: failed to withdraw advertisement: ${err instanceof Error ? err.message : String(err)}`);
|
|
200
|
+
}
|
|
168
201
|
}
|
|
169
202
|
/**
|
|
170
203
|
* Check for crash loop. Returns true if safe to start, false if should exit.
|
|
@@ -253,11 +286,124 @@ export function installShutdownHandlers(cleanup) {
|
|
|
253
286
|
// ============================================================================
|
|
254
287
|
// launchd Integration (macOS)
|
|
255
288
|
// ============================================================================
|
|
289
|
+
/** The launchd domain for the current user, e.g. `gui/501`. */
|
|
290
|
+
function launchdDomain() {
|
|
291
|
+
return `gui/${process.getuid?.() ?? 0}`;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* True when `path` lives on the boot volume.
|
|
295
|
+
*
|
|
296
|
+
* launchd refuses to bootstrap user agents from any other volume — it fails
|
|
297
|
+
* with `5: Input/output error`. Used only to explain a failure, never to
|
|
298
|
+
* decide whether the install succeeded (that comes from `isLaunchdLoaded`).
|
|
299
|
+
*/
|
|
300
|
+
function isOnBootVolume(path) {
|
|
301
|
+
// Walk up to the nearest component that exists — the leaf may not be written yet.
|
|
302
|
+
let probe = path;
|
|
303
|
+
while (!existsSync(probe)) {
|
|
304
|
+
const parent = dirname(probe);
|
|
305
|
+
if (parent === probe)
|
|
306
|
+
return false;
|
|
307
|
+
probe = parent;
|
|
308
|
+
}
|
|
309
|
+
try {
|
|
310
|
+
const dev = statSync(probe).dev;
|
|
311
|
+
// On APFS volume groups `/` and the Data volume report the same st_dev,
|
|
312
|
+
// but check both so this holds on older layouts too.
|
|
313
|
+
for (const root of ['/', '/System/Volumes/Data']) {
|
|
314
|
+
try {
|
|
315
|
+
if (statSync(root).dev === dev)
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
// Root probe missing — try the next one.
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
// Unstattable: treat as off-volume so we surface the hint rather than hide it.
|
|
325
|
+
}
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Ask launchd whether the agent is actually loaded.
|
|
330
|
+
*
|
|
331
|
+
* This is the only trustworthy signal. `launchctl load` exits 0 even when it
|
|
332
|
+
* fails, which is what let install report success for months (ISS-0127).
|
|
333
|
+
*/
|
|
334
|
+
export function isLaunchdLoaded() {
|
|
335
|
+
try {
|
|
336
|
+
execSync(`launchctl print ${launchdDomain()}/${LAUNCHD_LABEL}`, { stdio: 'pipe' });
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Remedies for the case where $HOME is not on the boot volume, so launchd will
|
|
345
|
+
* never load the plist we just wrote. Returns [] when that is not the problem.
|
|
346
|
+
*/
|
|
347
|
+
function offBootVolumeAdvice(nodePath, serverPath, port) {
|
|
348
|
+
if (isOnBootVolume(LAUNCH_AGENTS_DIR))
|
|
349
|
+
return [];
|
|
350
|
+
const systemPlist = join(SYSTEM_LAUNCH_AGENTS_DIR, PLIST_NAME);
|
|
351
|
+
return [
|
|
352
|
+
'',
|
|
353
|
+
` Cause: your home directory (${homedir()}) is not on the boot volume, and`,
|
|
354
|
+
' launchd will not load user agents from another volume.',
|
|
355
|
+
'',
|
|
356
|
+
' Remedy A — install to the boot volume (needs sudo, survives reboot):',
|
|
357
|
+
` sudo cp ${PLIST_DEST} ${systemPlist}`,
|
|
358
|
+
` sudo chown root:wheel ${systemPlist}`,
|
|
359
|
+
` launchctl bootstrap ${launchdDomain()} ${systemPlist}`,
|
|
360
|
+
'',
|
|
361
|
+
' Remedy B — cron, no sudo required:',
|
|
362
|
+
` (crontab -l 2>/dev/null; echo "@reboot ${nodePath} ${serverPath} --daemon --port ${port}") | crontab -`,
|
|
363
|
+
];
|
|
364
|
+
}
|
|
256
365
|
function getTemplateDir() {
|
|
257
366
|
const __filename = fileURLToPath(import.meta.url);
|
|
258
367
|
const __dirname = dirname(__filename);
|
|
259
368
|
return join(__dirname, '..', 'templates');
|
|
260
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* Fill in the launchd plist template. Split out from `installLaunchd` so the
|
|
372
|
+
* substitution can be tested without touching launchctl or ~/Library.
|
|
373
|
+
*/
|
|
374
|
+
export function renderPlist(options) {
|
|
375
|
+
const templatePath = join(getTemplateDir(), PLIST_NAME);
|
|
376
|
+
let plist = readFileSync(templatePath, 'utf-8');
|
|
377
|
+
const serverPath = join(dirname(fileURLToPath(import.meta.url)), '..', 'dist', 'server.js');
|
|
378
|
+
const port = options?.port || 4888;
|
|
379
|
+
// Carry the installing shell's tier opt-in into the agent. Deliberately not
|
|
380
|
+
// hardcoded in the template: a plist in /Library/LaunchAgents is world-readable,
|
|
381
|
+
// and guardian flags DECIBEL_PRO=1 in production as an over-grant.
|
|
382
|
+
//
|
|
383
|
+
// DECIBEL_APPS is gone (EPIC-0038 Phase 7). Private facades come from the
|
|
384
|
+
// allowlist in ~/.decibel/config.yaml, which is the owner's file at mode 600
|
|
385
|
+
// rather than a world-readable plist that has to be regenerated correctly.
|
|
386
|
+
// Losing that flag on a regenerate is exactly how four facades disappeared
|
|
387
|
+
// with no error on 2026-09-01.
|
|
388
|
+
const tierEnv = ['DECIBEL_PRO']
|
|
389
|
+
.filter(k => process.env[k] === '1')
|
|
390
|
+
.map(k => ` <key>${k}</key>\n <string>1</string>\n`)
|
|
391
|
+
.join('');
|
|
392
|
+
const substitutions = {
|
|
393
|
+
'{{NODE_PATH}}': process.execPath,
|
|
394
|
+
'{{SERVER_PATH}}': serverPath,
|
|
395
|
+
'{{PORT}}': String(port),
|
|
396
|
+
'{{LOG_PATH}}': LOG_PATH,
|
|
397
|
+
'{{ERROR_LOG_PATH}}': join(LOG_DIR, 'daemon-error.log'),
|
|
398
|
+
'{{ENV_FILE}}': ENV_FILE_PATH,
|
|
399
|
+
'{{HOME}}': homedir(),
|
|
400
|
+
'{{TIER_ENV}}': tierEnv,
|
|
401
|
+
};
|
|
402
|
+
for (const [token, value] of Object.entries(substitutions)) {
|
|
403
|
+
plist = plist.split(token).join(value);
|
|
404
|
+
}
|
|
405
|
+
return { plist, serverPath, port };
|
|
406
|
+
}
|
|
261
407
|
/**
|
|
262
408
|
* Install the launchd plist so the daemon auto-starts on login.
|
|
263
409
|
*/
|
|
@@ -270,60 +416,80 @@ export function installLaunchd(options) {
|
|
|
270
416
|
message: `Template not found: ${templatePath}`,
|
|
271
417
|
};
|
|
272
418
|
}
|
|
273
|
-
|
|
274
|
-
let plist = readFileSync(templatePath, 'utf-8');
|
|
275
|
-
const serverPath = join(dirname(fileURLToPath(import.meta.url)), '..', 'dist', 'server.js');
|
|
276
|
-
const port = options?.port || 4888;
|
|
277
|
-
plist = plist.replace('{{NODE_PATH}}', process.execPath);
|
|
278
|
-
plist = plist.replace('{{SERVER_PATH}}', serverPath);
|
|
279
|
-
plist = plist.replace('{{PORT}}', String(port));
|
|
280
|
-
plist = plist.replace('{{LOG_PATH}}', LOG_PATH);
|
|
281
|
-
plist = plist.replace('{{ERROR_LOG_PATH}}', join(LOG_DIR, 'daemon-error.log'));
|
|
419
|
+
const { plist, serverPath, port } = renderPlist(options);
|
|
282
420
|
// Write to LaunchAgents
|
|
283
421
|
ensureDir(LAUNCH_AGENTS_DIR);
|
|
284
422
|
writeFileSync(PLIST_DEST, plist, 'utf-8');
|
|
285
|
-
//
|
|
423
|
+
// Reload rather than load: bootstrap refuses a label that is already present,
|
|
424
|
+
// and a reinstall must pick up the plist we just wrote.
|
|
425
|
+
const domain = launchdDomain();
|
|
286
426
|
try {
|
|
287
|
-
execSync(`launchctl
|
|
427
|
+
execSync(`launchctl bootout ${domain}/${LAUNCHD_LABEL}`, { stdio: 'pipe' });
|
|
288
428
|
}
|
|
289
429
|
catch {
|
|
290
|
-
//
|
|
291
|
-
try {
|
|
292
|
-
execSync(`launchctl unload ${PLIST_DEST}`, { stdio: 'pipe' });
|
|
293
|
-
execSync(`launchctl load ${PLIST_DEST}`, { stdio: 'pipe' });
|
|
294
|
-
}
|
|
295
|
-
catch (e) {
|
|
296
|
-
return {
|
|
297
|
-
installed: true,
|
|
298
|
-
path: PLIST_DEST,
|
|
299
|
-
message: `Plist written but launchctl load failed: ${e}`,
|
|
300
|
-
};
|
|
301
|
-
}
|
|
430
|
+
// Not loaded — nothing to boot out.
|
|
302
431
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
432
|
+
let bootstrapError = '';
|
|
433
|
+
try {
|
|
434
|
+
execSync(`launchctl bootstrap ${domain} ${PLIST_DEST}`, { stdio: 'pipe' });
|
|
435
|
+
}
|
|
436
|
+
catch (e) {
|
|
437
|
+
const err = e;
|
|
438
|
+
bootstrapError = String(err.stderr?.toString() || err.message || e).trim();
|
|
439
|
+
}
|
|
440
|
+
// Never trust the exit code alone — ask launchd what it actually holds.
|
|
441
|
+
if (isLaunchdLoaded()) {
|
|
442
|
+
return {
|
|
443
|
+
installed: true,
|
|
444
|
+
path: PLIST_DEST,
|
|
445
|
+
message: `Installed and loaded. Daemon will auto-start on login (port ${port}).`,
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
const lines = [
|
|
449
|
+
`Plist written to ${PLIST_DEST}, but launchd did not load it —`,
|
|
450
|
+
'the daemon will NOT auto-start.',
|
|
451
|
+
];
|
|
452
|
+
if (bootstrapError)
|
|
453
|
+
lines.push(` launchctl: ${bootstrapError}`);
|
|
454
|
+
lines.push(...offBootVolumeAdvice(process.execPath, serverPath, port));
|
|
455
|
+
return { installed: false, path: PLIST_DEST, message: lines.join('\n') };
|
|
308
456
|
}
|
|
309
457
|
/**
|
|
310
458
|
* Uninstall the launchd plist and stop the daemon.
|
|
311
459
|
*/
|
|
312
460
|
export function uninstallLaunchd() {
|
|
313
|
-
|
|
314
|
-
|
|
461
|
+
const domain = launchdDomain();
|
|
462
|
+
const wasLoaded = isLaunchdLoaded();
|
|
463
|
+
if (wasLoaded) {
|
|
464
|
+
try {
|
|
465
|
+
execSync(`launchctl bootout ${domain}/${LAUNCHD_LABEL}`, { stdio: 'pipe' });
|
|
466
|
+
}
|
|
467
|
+
catch {
|
|
468
|
+
// Verified below rather than trusted here.
|
|
469
|
+
}
|
|
315
470
|
}
|
|
316
|
-
|
|
317
|
-
|
|
471
|
+
if (isLaunchdLoaded()) {
|
|
472
|
+
return {
|
|
473
|
+
uninstalled: false,
|
|
474
|
+
message: `Failed to unload ${LAUNCHD_LABEL}. If it was bootstrapped from ` +
|
|
475
|
+
`${SYSTEM_LAUNCH_AGENTS_DIR}, remove it with:\n` +
|
|
476
|
+
` sudo launchctl bootout ${domain}/${LAUNCHD_LABEL}\n` +
|
|
477
|
+
` sudo rm ${join(SYSTEM_LAUNCH_AGENTS_DIR, PLIST_NAME)}`,
|
|
478
|
+
};
|
|
318
479
|
}
|
|
319
|
-
|
|
320
|
-
|
|
480
|
+
if (!existsSync(PLIST_DEST)) {
|
|
481
|
+
return {
|
|
482
|
+
uninstalled: wasLoaded,
|
|
483
|
+
message: wasLoaded
|
|
484
|
+
? `Unloaded ${LAUNCHD_LABEL}. No plist at ${PLIST_DEST} to remove — it was loaded from elsewhere.`
|
|
485
|
+
: 'Plist not found — daemon not installed.',
|
|
486
|
+
};
|
|
321
487
|
}
|
|
322
488
|
try {
|
|
323
489
|
unlinkSync(PLIST_DEST);
|
|
324
490
|
}
|
|
325
491
|
catch {
|
|
326
|
-
return { uninstalled: false, message:
|
|
492
|
+
return { uninstalled: false, message: `Unloaded, but failed to remove ${PLIST_DEST}.` };
|
|
327
493
|
}
|
|
328
494
|
return { uninstalled: true, message: 'Daemon uninstalled. Will no longer auto-start.' };
|
|
329
495
|
}
|
|
@@ -337,7 +503,9 @@ export function daemonStatus() {
|
|
|
337
503
|
pid,
|
|
338
504
|
pidFile: PID_PATH,
|
|
339
505
|
logFile: LOG_PATH,
|
|
340
|
-
launchd
|
|
506
|
+
// Whether launchd actually holds the job — not merely whether a file exists.
|
|
507
|
+
launchd: isLaunchdLoaded(),
|
|
508
|
+
launchdPlist: existsSync(PLIST_DEST),
|
|
341
509
|
port: null, // Would need to read from config or PID metadata
|
|
342
510
|
};
|
|
343
511
|
}
|
|
@@ -442,7 +610,12 @@ export function handleDaemonSubcommand(args) {
|
|
|
442
610
|
}
|
|
443
611
|
console.log(` PID file: ${status.pidFile}`);
|
|
444
612
|
console.log(` Log file: ${status.logFile}`);
|
|
445
|
-
|
|
613
|
+
const launchdState = status.launchd
|
|
614
|
+
? 'loaded (auto-starts on login)'
|
|
615
|
+
: status.launchdPlist
|
|
616
|
+
? 'plist present but NOT loaded — will not auto-start'
|
|
617
|
+
: 'not installed';
|
|
618
|
+
console.log(` launchd: ${launchdState}`);
|
|
446
619
|
process.exit(0);
|
|
447
620
|
return true;
|
|
448
621
|
}
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/daemonConfig.d.ts
CHANGED
|
@@ -13,9 +13,55 @@ export interface DaemonConfig {
|
|
|
13
13
|
rate_limit_rpm: number;
|
|
14
14
|
gc_interval_secs: number;
|
|
15
15
|
};
|
|
16
|
+
/** AgentHQ post office (EPIC-0037). The token is a secret — see tools/postoffice.ts. */
|
|
17
|
+
hq?: {
|
|
18
|
+
url?: string;
|
|
19
|
+
token?: string;
|
|
20
|
+
};
|
|
16
21
|
license?: {
|
|
17
22
|
key?: string;
|
|
18
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Zoom AI Companion ingestion (EPIC-0036). Server-to-Server OAuth credentials.
|
|
26
|
+
* These are ACCOUNT-WIDE ADMIN scope — meeting_summary:read:admin reads every
|
|
27
|
+
* meeting in the account, not only client ones. See ISS-0123.
|
|
28
|
+
*/
|
|
29
|
+
zoom?: {
|
|
30
|
+
account_id?: string;
|
|
31
|
+
client_id?: string;
|
|
32
|
+
client_secret?: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Private facades loaded at boot (EPIC-0038 Phase 7). `allow` holds absolute
|
|
36
|
+
* paths to extension modules; anything else is rejected by the loader. This
|
|
37
|
+
* lives in config rather than the environment on purpose — see the trust
|
|
38
|
+
* boundary note in runtime/extensions.ts.
|
|
39
|
+
*/
|
|
40
|
+
extensions?: {
|
|
41
|
+
allow?: string[];
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Hosted sessions (ADR-0012 / decibel-hq EPIC-0015). The session WRITE routes
|
|
45
|
+
* — attach-token, control, spawn, WS attach — can start `claude` and type into
|
|
46
|
+
* it, so they are gated on their own bearer rather than the daemon's, which is
|
|
47
|
+
* usually unset on a localhost daemon. No token = those routes fail closed.
|
|
48
|
+
* The token is a secret (POL-0002): it never reaches a browser; the HQ dev
|
|
49
|
+
* proxy injects it server-side.
|
|
50
|
+
*/
|
|
51
|
+
sessions?: {
|
|
52
|
+
token?: string;
|
|
53
|
+
allowed_origins?: string[];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* claude-peers broker supervision (ISS-0193). When `broker.command` is set,
|
|
57
|
+
* the daemon keeps the broker on 127.0.0.1:7899 alive, starting it detached
|
|
58
|
+
* when /health does not answer. Absolute paths only.
|
|
59
|
+
*/
|
|
60
|
+
peers?: {
|
|
61
|
+
broker?: {
|
|
62
|
+
command?: string[];
|
|
63
|
+
};
|
|
64
|
+
};
|
|
19
65
|
agents?: Record<string, AgentConfig>;
|
|
20
66
|
}
|
|
21
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemonConfig.d.ts","sourceRoot":"","sources":["../src/daemonConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemonConfig.d.ts","sourceRoot":"","sources":["../src/daemonConfig.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,wFAAwF;IACxF,EAAE,CAAC,EAAE;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;;;OAKG;IACH,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;IACF;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;SACpB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC;AA+BD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAiDzC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CASjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,YAAY,CAad;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,GACpB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAqCvE"}
|
package/dist/daemonConfig.js
CHANGED
|
@@ -7,8 +7,22 @@
|
|
|
7
7
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
8
8
|
import { join, dirname } from 'path';
|
|
9
9
|
import { homedir } from 'os';
|
|
10
|
-
import
|
|
10
|
+
import { createRequire } from 'module';
|
|
11
11
|
import { log } from './config.js';
|
|
12
|
+
// `yaml` costs ~12 MB resident to import, and this module is loaded by every
|
|
13
|
+
// process that reads a port number — including the thin stdio client, which
|
|
14
|
+
// owns no runtime. loadConfig() returns defaults without parsing anything when
|
|
15
|
+
// ~/.decibel/config.yaml is absent, which is the common case, so the parser is
|
|
16
|
+
// pulled in on first actual parse rather than at module load. Kept sync via
|
|
17
|
+
// createRequire because both callers are sync and making them async would
|
|
18
|
+
// ripple into daemon startup ordering.
|
|
19
|
+
let yamlModule = null;
|
|
20
|
+
function yaml() {
|
|
21
|
+
if (!yamlModule) {
|
|
22
|
+
yamlModule = createRequire(import.meta.url)('yaml');
|
|
23
|
+
}
|
|
24
|
+
return yamlModule;
|
|
25
|
+
}
|
|
12
26
|
const DEFAULT_CONFIG = {
|
|
13
27
|
daemon: {
|
|
14
28
|
port: 4888,
|
|
@@ -22,7 +36,15 @@ const DEFAULT_CONFIG = {
|
|
|
22
36
|
// ============================================================================
|
|
23
37
|
// Config Path
|
|
24
38
|
// ============================================================================
|
|
25
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Resolved per call rather than captured at import. os.homedir() tracks $HOME,
|
|
41
|
+
* and a module-level constant freezes whatever HOME was when the module first
|
|
42
|
+
* loaded — which is wrong for a daemon that reloads config on SIGHUP, and
|
|
43
|
+
* untestable for anything that needs to point at a different home.
|
|
44
|
+
*/
|
|
45
|
+
function configPath() {
|
|
46
|
+
return join(homedir(), '.decibel', 'config.yaml');
|
|
47
|
+
}
|
|
26
48
|
// ============================================================================
|
|
27
49
|
// Load & Parse
|
|
28
50
|
// ============================================================================
|
|
@@ -31,12 +53,12 @@ const CONFIG_PATH = join(homedir(), '.decibel', 'config.yaml');
|
|
|
31
53
|
* Returns defaults if file doesn't exist or is invalid.
|
|
32
54
|
*/
|
|
33
55
|
export function loadConfig() {
|
|
34
|
-
if (!existsSync(
|
|
56
|
+
if (!existsSync(configPath())) {
|
|
35
57
|
return { ...DEFAULT_CONFIG };
|
|
36
58
|
}
|
|
37
59
|
try {
|
|
38
|
-
const raw = readFileSync(
|
|
39
|
-
const parsed =
|
|
60
|
+
const raw = readFileSync(configPath(), 'utf-8');
|
|
61
|
+
const parsed = yaml().parse(raw);
|
|
40
62
|
if (!parsed)
|
|
41
63
|
return { ...DEFAULT_CONFIG };
|
|
42
64
|
return {
|
|
@@ -49,14 +71,33 @@ export function loadConfig() {
|
|
|
49
71
|
rate_limit_rpm: parsed.daemon?.rate_limit_rpm ?? DEFAULT_CONFIG.daemon.rate_limit_rpm,
|
|
50
72
|
gc_interval_secs: parsed.daemon?.gc_interval_secs ?? DEFAULT_CONFIG.daemon.gc_interval_secs,
|
|
51
73
|
},
|
|
74
|
+
hq: parsed.hq ? {
|
|
75
|
+
url: parsed.hq.url,
|
|
76
|
+
token: parsed.hq.token,
|
|
77
|
+
} : undefined,
|
|
52
78
|
license: parsed.license ? {
|
|
53
79
|
key: parsed.license.key,
|
|
54
80
|
} : undefined,
|
|
81
|
+
zoom: parsed.zoom ? {
|
|
82
|
+
account_id: parsed.zoom.account_id,
|
|
83
|
+
client_id: parsed.zoom.client_id,
|
|
84
|
+
client_secret: parsed.zoom.client_secret,
|
|
85
|
+
} : undefined,
|
|
86
|
+
extensions: parsed.extensions ? {
|
|
87
|
+
allow: parsed.extensions.allow,
|
|
88
|
+
} : undefined,
|
|
89
|
+
sessions: parsed.sessions ? {
|
|
90
|
+
token: parsed.sessions.token,
|
|
91
|
+
allowed_origins: parsed.sessions.allowed_origins,
|
|
92
|
+
} : undefined,
|
|
93
|
+
peers: parsed.peers?.broker ? {
|
|
94
|
+
broker: { command: parsed.peers.broker.command },
|
|
95
|
+
} : undefined,
|
|
55
96
|
agents: parsed.agents,
|
|
56
97
|
};
|
|
57
98
|
}
|
|
58
99
|
catch (err) {
|
|
59
|
-
log(`Config: Failed to parse ${
|
|
100
|
+
log(`Config: Failed to parse ${configPath()}: ${err}`);
|
|
60
101
|
return { ...DEFAULT_CONFIG };
|
|
61
102
|
}
|
|
62
103
|
}
|
|
@@ -64,7 +105,7 @@ export function loadConfig() {
|
|
|
64
105
|
* Get the config file path (for display purposes).
|
|
65
106
|
*/
|
|
66
107
|
export function getConfigPath() {
|
|
67
|
-
return
|
|
108
|
+
return configPath();
|
|
68
109
|
}
|
|
69
110
|
/**
|
|
70
111
|
* Write a license key into ~/.decibel/config.yaml, creating the file if
|
|
@@ -72,12 +113,12 @@ export function getConfigPath() {
|
|
|
72
113
|
* this file is hand-edited by users.
|
|
73
114
|
*/
|
|
74
115
|
export function writeLicenseKey(key) {
|
|
75
|
-
mkdirSync(dirname(
|
|
76
|
-
const doc = existsSync(
|
|
77
|
-
?
|
|
78
|
-
: new
|
|
116
|
+
mkdirSync(dirname(configPath()), { recursive: true });
|
|
117
|
+
const doc = existsSync(configPath())
|
|
118
|
+
? yaml().parseDocument(readFileSync(configPath(), 'utf-8'))
|
|
119
|
+
: new (yaml().Document)({});
|
|
79
120
|
doc.setIn(['license', 'key'], key);
|
|
80
|
-
writeFileSync(
|
|
121
|
+
writeFileSync(configPath(), doc.toString(), 'utf-8');
|
|
81
122
|
}
|
|
82
123
|
/**
|
|
83
124
|
* Merge CLI flags over config file values. CLI takes precedence.
|
|
@@ -127,6 +168,10 @@ export function reloadConfig(current) {
|
|
|
127
168
|
if (reloaded.daemon.gc_interval_secs !== current.daemon.gc_interval_secs) {
|
|
128
169
|
changes.push(`gc_interval_secs: ${current.daemon.gc_interval_secs} → ${reloaded.daemon.gc_interval_secs}`);
|
|
129
170
|
}
|
|
171
|
+
if (JSON.stringify(reloaded.peers) !== JSON.stringify(current.peers)) {
|
|
172
|
+
changes.push('peers: config changed (takes effect on restart)');
|
|
173
|
+
requiresRestart = true;
|
|
174
|
+
}
|
|
130
175
|
if (JSON.stringify(reloaded.agents) !== JSON.stringify(current.agents)) {
|
|
131
176
|
changes.push('agents: config changed');
|
|
132
177
|
}
|