@cello-protocol/daemon 0.0.197 → 0.0.199
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-admin-handlers.d.ts +56 -0
- package/dist/agent-admin-handlers.d.ts.map +1 -0
- package/dist/agent-admin-handlers.js +70 -0
- package/dist/agent-admin-handlers.js.map +1 -0
- package/dist/agent-handlers.d.ts +8 -7
- package/dist/agent-handlers.d.ts.map +1 -1
- package/dist/agent-handlers.js +10 -1
- package/dist/agent-handlers.js.map +1 -1
- package/dist/agent-selection-root.d.ts +29 -0
- package/dist/agent-selection-root.d.ts.map +1 -0
- package/dist/agent-selection-root.js +126 -0
- package/dist/agent-selection-root.js.map +1 -0
- package/dist/attendance-wiring.d.ts +44 -0
- package/dist/attendance-wiring.d.ts.map +1 -0
- package/dist/attendance-wiring.js +432 -0
- package/dist/attendance-wiring.js.map +1 -0
- package/dist/backup-restore-handlers.d.ts +10 -0
- package/dist/backup-restore-handlers.d.ts.map +1 -0
- package/dist/backup-restore-handlers.js +82 -0
- package/dist/backup-restore-handlers.js.map +1 -0
- package/dist/boot-agents.d.ts +64 -0
- package/dist/boot-agents.d.ts.map +1 -0
- package/dist/boot-agents.js +241 -0
- package/dist/boot-agents.js.map +1 -0
- package/dist/boot-connection-state.d.ts +40 -0
- package/dist/boot-connection-state.d.ts.map +1 -0
- package/dist/boot-connection-state.js +136 -0
- package/dist/boot-connection-state.js.map +1 -0
- package/dist/boot-core.d.ts +36 -0
- package/dist/boot-core.d.ts.map +1 -0
- package/dist/boot-core.js +292 -0
- package/dist/boot-core.js.map +1 -0
- package/dist/boot-parked-content.d.ts +34 -0
- package/dist/boot-parked-content.d.ts.map +1 -0
- package/dist/boot-parked-content.js +527 -0
- package/dist/boot-parked-content.js.map +1 -0
- package/dist/boot-sweeps.d.ts +22 -0
- package/dist/boot-sweeps.d.ts.map +1 -0
- package/dist/boot-sweeps.js +50 -0
- package/dist/boot-sweeps.js.map +1 -0
- package/dist/connection-agents.d.ts +16 -0
- package/dist/connection-agents.d.ts.map +1 -0
- package/dist/connection-agents.js +68 -0
- package/dist/connection-agents.js.map +1 -0
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +274 -25
- package/dist/content-park.js.map +1 -1
- package/dist/daemon-handle.d.ts +57 -0
- package/dist/daemon-handle.d.ts.map +1 -0
- package/dist/daemon-handle.js +2 -0
- package/dist/daemon-handle.js.map +1 -0
- package/dist/daemon-status-report.d.ts +40 -0
- package/dist/daemon-status-report.d.ts.map +1 -0
- package/dist/daemon-status-report.js +78 -0
- package/dist/daemon-status-report.js.map +1 -0
- package/dist/daemon.d.ts +5 -66
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +332 -4894
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-open-registry.d.ts +1 -1
- package/dist/delivery-open-registry.js +1 -1
- package/dist/directory-connect.d.ts +27 -0
- package/dist/directory-connect.d.ts.map +1 -0
- package/dist/directory-connect.js +98 -0
- package/dist/directory-connect.js.map +1 -0
- package/dist/disconnect-cleanup.d.ts +45 -0
- package/dist/disconnect-cleanup.d.ts.map +1 -0
- package/dist/disconnect-cleanup.js +65 -0
- package/dist/disconnect-cleanup.js.map +1 -0
- package/dist/document-surface.d.ts +32 -0
- package/dist/document-surface.d.ts.map +1 -0
- package/dist/document-surface.js +150 -0
- package/dist/document-surface.js.map +1 -0
- package/dist/document-wiring.d.ts +53 -0
- package/dist/document-wiring.d.ts.map +1 -0
- package/dist/document-wiring.js +323 -0
- package/dist/document-wiring.js.map +1 -0
- package/dist/inbound-sessions.d.ts +9 -1
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +9 -1
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/ipc-surface.d.ts +44 -0
- package/dist/ipc-surface.d.ts.map +1 -0
- package/dist/ipc-surface.js +106 -0
- package/dist/ipc-surface.js.map +1 -0
- package/dist/network-directory-node.d.ts +0 -18
- package/dist/network-directory-node.d.ts.map +1 -1
- package/dist/network-directory-node.js +1 -38
- package/dist/network-directory-node.js.map +1 -1
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +2 -0
- package/dist/notification-handlers.js.map +1 -1
- package/dist/onboarding-guidance.d.ts +79 -0
- package/dist/onboarding-guidance.d.ts.map +1 -0
- package/dist/onboarding-guidance.js +95 -0
- package/dist/onboarding-guidance.js.map +1 -0
- package/dist/operator-guidance.d.ts +25 -0
- package/dist/operator-guidance.d.ts.map +1 -0
- package/dist/operator-guidance.js +50 -0
- package/dist/operator-guidance.js.map +1 -0
- package/dist/park-recovery.d.ts +22 -1
- package/dist/park-recovery.d.ts.map +1 -1
- package/dist/park-recovery.js.map +1 -1
- package/dist/park-refusals.d.ts +147 -0
- package/dist/park-refusals.d.ts.map +1 -0
- package/dist/park-refusals.js +331 -0
- package/dist/park-refusals.js.map +1 -0
- package/dist/refusal-notices.d.ts.map +1 -1
- package/dist/refusal-notices.js +22 -2
- package/dist/refusal-notices.js.map +1 -1
- package/dist/refusal-reasons.d.ts +13 -0
- package/dist/refusal-reasons.d.ts.map +1 -1
- package/dist/refusal-reasons.js +19 -0
- package/dist/refusal-reasons.js.map +1 -1
- package/dist/register-handler.d.ts +8 -7
- package/dist/register-handler.d.ts.map +1 -1
- package/dist/register-handler.js.map +1 -1
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +2 -0
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-content-ingest.d.ts +1 -0
- package/dist/session-content-ingest.d.ts.map +1 -1
- package/dist/session-content-ingest.js +2 -2
- package/dist/session-content-ingest.js.map +1 -1
- package/dist/session-node-factory.d.ts +18 -0
- package/dist/session-node-factory.d.ts.map +1 -0
- package/dist/session-node-factory.js +182 -0
- package/dist/session-node-factory.js.map +1 -0
- package/dist/session-node-manager.d.ts +1 -0
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-node-types.d.ts +8 -0
- package/dist/session-node-types.d.ts.map +1 -1
- package/dist/session-node-types.js.map +1 -1
- package/dist/session-notify.d.ts +46 -0
- package/dist/session-notify.d.ts.map +1 -0
- package/dist/session-notify.js +115 -0
- package/dist/session-notify.js.map +1 -0
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +0 -1
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-salt-agreement.d.ts +0 -7
- package/dist/session-salt-agreement.d.ts.map +1 -1
- package/dist/session-salt-agreement.js +0 -7
- package/dist/session-salt-agreement.js.map +1 -1
- package/dist/session-views.d.ts +46 -0
- package/dist/session-views.d.ts.map +1 -0
- package/dist/session-views.js +197 -0
- package/dist/session-views.js.map +1 -0
- package/dist/signal-handlers.d.ts +66 -0
- package/dist/signal-handlers.d.ts.map +1 -0
- package/dist/signal-handlers.js +975 -0
- package/dist/signal-handlers.js.map +1 -0
- package/dist/signaling-wiring.d.ts +100 -0
- package/dist/signaling-wiring.d.ts.map +1 -0
- package/dist/signaling-wiring.js +392 -0
- package/dist/signaling-wiring.js.map +1 -0
- package/dist/start-agent.d.ts +64 -0
- package/dist/start-agent.d.ts.map +1 -0
- package/dist/start-agent.js +136 -0
- package/dist/start-agent.js.map +1 -0
- package/dist/status-handler.d.ts +46 -0
- package/dist/status-handler.d.ts.map +1 -0
- package/dist/status-handler.js +58 -0
- package/dist/status-handler.js.map +1 -0
- package/dist/test-handlers.d.ts +62 -0
- package/dist/test-handlers.d.ts.map +1 -0
- package/dist/test-handlers.js +239 -0
- package/dist/test-handlers.js.map +1 -0
- package/dist/types.d.ts +0 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -12
- package/dist/types.js.map +1 -1
- package/dist/unresolved-nodes-report.d.ts +14 -0
- package/dist/unresolved-nodes-report.d.ts.map +1 -0
- package/dist/unresolved-nodes-report.js +96 -0
- package/dist/unresolved-nodes-report.js.map +1 -0
- package/dist/who-resolver.d.ts +15 -0
- package/dist/who-resolver.d.ts.map +1 -0
- package/dist/who-resolver.js +46 -0
- package/dist/who-resolver.js.map +1 -0
- package/dist/wire-content-hash.d.ts +0 -2
- package/dist/wire-content-hash.d.ts.map +1 -1
- package/dist/wire-content-hash.js +0 -4
- package/dist/wire-content-hash.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-handlers.js","sourceRoot":"","sources":["../src/signal-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One directory signaling stream per agent, authenticated as that agent.
|
|
3
|
+
*
|
|
4
|
+
* The directory routes EVERY frame — `dkg_complete`, `register_success`, an inbound
|
|
5
|
+
* `session_assignment`, a seal — by the pubkey that authenticated the stream it arrived on. So each
|
|
6
|
+
* agent must hold its own; there is no shared connection borrowing one agent's identity. The single
|
|
7
|
+
* shared manager that appears below exists only for the in-process test path.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ NINETEEN DEPENDENCIES — seven over the order's bound, and the number is COUNTED, not typed:
|
|
10
|
+
* `signaling-wiring-deps.test.ts` asserts it against the interface, because the first two versions
|
|
11
|
+
* of this sentence said fourteen and eighteen and disagreed with each other.
|
|
12
|
+
*
|
|
13
|
+
* It is one constructor, not a missed seam. `getAgentSignaling` is the sole entry point that touches
|
|
14
|
+
* all nineteen, and it is not a lookup: for an unknown agent it CONSTRUCTS a manager and wires seven
|
|
15
|
+
* things onto it in one uninterruptible sequence — connect, session ceremony, seal ceremony, seal
|
|
16
|
+
* listeners, session offer, and the two inbound handlers. Any split leaves a manager observably
|
|
17
|
+
* half-wired between two calls, which is the failure the CONN-001 comments below spend forty lines
|
|
18
|
+
* describing. The four small returns look separable and are not: three of them read
|
|
19
|
+
* `perAgentSignaling`, which only `getAgentSignaling` fills, so extracting them means exporting the
|
|
20
|
+
* map instead.
|
|
21
|
+
*
|
|
22
|
+
* ⚠️ TWO VALUES ARE GETTERS, AND THE REASON IS **CORRECTNESS, NOT BLAST RADIUS**.
|
|
23
|
+
* `getWirePerAgentSessionInbound` and `getHandleTrustSignalPickup` come from `createInboundSessions`,
|
|
24
|
+
* built ~1,200 lines BELOW this wiring. They are `const`, so passing them by value does not go
|
|
25
|
+
* quiet — it throws `ReferenceError: Cannot access ... before initialization` and the daemon dies at
|
|
26
|
+
* boot with the right name in the message. **The silent shape is a `let x;` that is still
|
|
27
|
+
* `undefined`**, which is what unit 4 hit and why its defect survived 5,003 green tests. Do not read
|
|
28
|
+
* this comment as "late binding is always silent"; the detection rule is the DECLARATION, and `let`
|
|
29
|
+
* is the one that hides.
|
|
30
|
+
*
|
|
31
|
+
* ⚠️ ONE CONSUMER IS BUILT BEFORE THIS MODULE. `createSealFlows` takes `signalingFor` and `sendOver`,
|
|
32
|
+
* and it is constructed above this call, so those two arrive as lambdas that resolve here at call
|
|
33
|
+
* time. `dropAgentSignaling` is passed by value — its consumers are built ~1,900 lines below, so
|
|
34
|
+
* there is nothing to defer.
|
|
35
|
+
*/
|
|
36
|
+
import { SignalingManager } from "@cello-protocol/transport";
|
|
37
|
+
import type { CelloNode, IDirectoryChallengeVerifier } from "@cello-protocol/transport";
|
|
38
|
+
import type { SessionNodeManager } from "./session-node-manager.js";
|
|
39
|
+
import type { LoadedAgent } from "./agent-loader.js";
|
|
40
|
+
import type { DirectorySignalingState, Logger } from "./types.js";
|
|
41
|
+
import type { DbRegistrationPersistence } from "./db-identity-store.js";
|
|
42
|
+
import type { ConsortiumEndpoint } from "./directory-bootstrap.js";
|
|
43
|
+
import type { DirectoryEndpoint } from "./signaling-connect.js";
|
|
44
|
+
import type { SubmissionRetryQueue } from "./submission-retry.js";
|
|
45
|
+
import type { SealFailureStore } from "./seal-failure-store.js";
|
|
46
|
+
import type { KeyProvider } from "@cello-protocol/crypto";
|
|
47
|
+
/** One agent's directory stream and the libp2p node behind it. */
|
|
48
|
+
export interface AgentSignaling {
|
|
49
|
+
signaling: SignalingManager;
|
|
50
|
+
getNode: () => CelloNode | null;
|
|
51
|
+
}
|
|
52
|
+
export interface SignalingWiringDeps {
|
|
53
|
+
logger: Logger;
|
|
54
|
+
sessionNodeManager: SessionNodeManager;
|
|
55
|
+
/** The LIVE registry — a manager is built for an agent created after boot without a restart. */
|
|
56
|
+
loadedAgents: ReadonlyArray<LoadedAgent>;
|
|
57
|
+
keyProviders: Map<string, KeyProvider>;
|
|
58
|
+
/** Present ONLY on the in-process test path; undefined in production, where every agent dials. */
|
|
59
|
+
sharedSignaling: SignalingManager | undefined;
|
|
60
|
+
noSharedDirectoryNode: () => CelloNode | null;
|
|
61
|
+
verifiedManifestVersion: number;
|
|
62
|
+
getPersistence: (agentName: string) => DbRegistrationPersistence;
|
|
63
|
+
onSignalingConnected: (agentName: string) => void | Promise<void>;
|
|
64
|
+
resolveConsortiumRoster: () => Promise<ConsortiumEndpoint[] | null>;
|
|
65
|
+
failoverEndpointResolver: (() => Promise<DirectoryEndpoint | null>) | undefined;
|
|
66
|
+
/** Wired onto each new manager so a seal that arrives on it is heard. */
|
|
67
|
+
registerSealListeners: (mgr: SignalingManager, agentName: string, agentPubkeyHex: string) => void;
|
|
68
|
+
getFailoverEndpoint: () => Promise<{
|
|
69
|
+
peerId: string;
|
|
70
|
+
multiaddr?: string;
|
|
71
|
+
} | null>;
|
|
72
|
+
sealFailures: SealFailureStore;
|
|
73
|
+
submissionRetries: SubmissionRetryQueue;
|
|
74
|
+
challengeVerifier: IDirectoryChallengeVerifier | undefined;
|
|
75
|
+
directoryEndpointResolver: (() => Promise<DirectoryEndpoint | null>) | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* ⚠️ GETTERS, NOT VALUES, AND THE REASON IS THE DEFECT UNIT 4 SHIPPED. Both come from
|
|
78
|
+
* `createInboundSessions`, constructed roughly 1,200 lines BELOW this wiring, so at construction
|
|
79
|
+
* they do not exist. `getAgentSignaling` reads them only when it BUILDS a manager, which is always
|
|
80
|
+
* later, so resolving at call time is both correct and the only thing that works. Passed by value
|
|
81
|
+
* they would be `undefined` forever, and a non-primary agent would never receive an inbound session
|
|
82
|
+
* on its own stream — the exact failure the CONN-001 block below exists to prevent.
|
|
83
|
+
*/
|
|
84
|
+
getWirePerAgentSessionInbound: () => (mgr: SignalingManager, agentName: string) => void;
|
|
85
|
+
getHandleTrustSignalPickup: () => (frame: Record<string, unknown>, keyProvider: KeyProvider, mgr: SignalingManager, agentName: string) => void | Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
export declare function createSignalingWiring(deps: SignalingWiringDeps): {
|
|
88
|
+
perAgentSignaling: Map<string, AgentSignaling>;
|
|
89
|
+
getAgentSignaling: (agentName: string, agentKeyProvider: import("@cello-protocol/crypto").KeyProvider, agentPubkeyHex: string) => AgentSignaling;
|
|
90
|
+
waitForSignalingConnected: (mgr: SignalingManager, timeoutMs: number) => Promise<boolean>;
|
|
91
|
+
dropAgentSignaling: (agentName: string) => Promise<void>;
|
|
92
|
+
signalingFor: (agentName: string) => SignalingManager | undefined;
|
|
93
|
+
sendOver: (agentName: string, frame: Record<string, unknown>) => Promise<{
|
|
94
|
+
ok: boolean;
|
|
95
|
+
reason?: string;
|
|
96
|
+
}>;
|
|
97
|
+
directorySignalingStatus: () => DirectorySignalingState;
|
|
98
|
+
stopAllSignaling: () => Promise<void>;
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=signaling-wiring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signaling-wiring.d.ts","sourceRoot":"","sources":["../src/signaling-wiring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One directory signaling stream per agent, authenticated as that agent.
|
|
3
|
+
*
|
|
4
|
+
* The directory routes EVERY frame — `dkg_complete`, `register_success`, an inbound
|
|
5
|
+
* `session_assignment`, a seal — by the pubkey that authenticated the stream it arrived on. So each
|
|
6
|
+
* agent must hold its own; there is no shared connection borrowing one agent's identity. The single
|
|
7
|
+
* shared manager that appears below exists only for the in-process test path.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ NINETEEN DEPENDENCIES — seven over the order's bound, and the number is COUNTED, not typed:
|
|
10
|
+
* `signaling-wiring-deps.test.ts` asserts it against the interface, because the first two versions
|
|
11
|
+
* of this sentence said fourteen and eighteen and disagreed with each other.
|
|
12
|
+
*
|
|
13
|
+
* It is one constructor, not a missed seam. `getAgentSignaling` is the sole entry point that touches
|
|
14
|
+
* all nineteen, and it is not a lookup: for an unknown agent it CONSTRUCTS a manager and wires seven
|
|
15
|
+
* things onto it in one uninterruptible sequence — connect, session ceremony, seal ceremony, seal
|
|
16
|
+
* listeners, session offer, and the two inbound handlers. Any split leaves a manager observably
|
|
17
|
+
* half-wired between two calls, which is the failure the CONN-001 comments below spend forty lines
|
|
18
|
+
* describing. The four small returns look separable and are not: three of them read
|
|
19
|
+
* `perAgentSignaling`, which only `getAgentSignaling` fills, so extracting them means exporting the
|
|
20
|
+
* map instead.
|
|
21
|
+
*
|
|
22
|
+
* ⚠️ TWO VALUES ARE GETTERS, AND THE REASON IS **CORRECTNESS, NOT BLAST RADIUS**.
|
|
23
|
+
* `getWirePerAgentSessionInbound` and `getHandleTrustSignalPickup` come from `createInboundSessions`,
|
|
24
|
+
* built ~1,200 lines BELOW this wiring. They are `const`, so passing them by value does not go
|
|
25
|
+
* quiet — it throws `ReferenceError: Cannot access ... before initialization` and the daemon dies at
|
|
26
|
+
* boot with the right name in the message. **The silent shape is a `let x;` that is still
|
|
27
|
+
* `undefined`**, which is what unit 4 hit and why its defect survived 5,003 green tests. Do not read
|
|
28
|
+
* this comment as "late binding is always silent"; the detection rule is the DECLARATION, and `let`
|
|
29
|
+
* is the one that hides.
|
|
30
|
+
*
|
|
31
|
+
* ⚠️ ONE CONSUMER IS BUILT BEFORE THIS MODULE. `createSealFlows` takes `signalingFor` and `sendOver`,
|
|
32
|
+
* and it is constructed above this call, so those two arrive as lambdas that resolve here at call
|
|
33
|
+
* time. `dropAgentSignaling` is passed by value — its consumers are built ~1,900 lines below, so
|
|
34
|
+
* there is nothing to defer.
|
|
35
|
+
*/
|
|
36
|
+
import { SignalingManager } from "@cello-protocol/transport";
|
|
37
|
+
import { createSignalingConnect } from "./signaling-connect.js";
|
|
38
|
+
import { wireSessionCeremonyHandler, wireSessionOfferHandler, wireSealCeremonyHandler } from "./session-ceremony.js";
|
|
39
|
+
import { relayOnlyState } from "./relay-only.js";
|
|
40
|
+
export function createSignalingWiring(deps) {
|
|
41
|
+
const { logger, sessionNodeManager, loadedAgents, keyProviders, sharedSignaling, noSharedDirectoryNode, verifiedManifestVersion, getPersistence, onSignalingConnected, resolveConsortiumRoster, failoverEndpointResolver, getFailoverEndpoint, sealFailures, submissionRetries, challengeVerifier, directoryEndpointResolver, registerSealListeners, getWirePerAgentSessionInbound, getHandleTrustSignalPickup, } = deps;
|
|
42
|
+
// ─── Per-agent directory signaling (CONN-001: one signaling stream per agent) ──
|
|
43
|
+
// CELLO-M7-CONN-001 (DOD-CONN-1): the directory routes EVERY signaling frame —
|
|
44
|
+
// dkg_complete, register_success, inbound session_assignment, seal — by the pubkey that
|
|
45
|
+
// AUTHENTICATED the stream it arrived on. So each agent MUST get its OWN directory stream,
|
|
46
|
+
// authenticated as itself. There is no shared "keystone" connection borrowing one agent's
|
|
47
|
+
// identity. In production every agent has its own manager (built below); the only shared
|
|
48
|
+
// manager is the in-process test path's `sharedSignaling`. Managers are created lazily (on
|
|
49
|
+
// first registration / online / create) and kept connected for the agent's directory presence.
|
|
50
|
+
const perAgentSignaling = new Map();
|
|
51
|
+
/**
|
|
52
|
+
* Return the directory signaling stream for `agentName`, authenticated as that agent.
|
|
53
|
+
* Production: a dedicated per-agent manager (created + cached on first use). Test /
|
|
54
|
+
* backward-compat path (no directoryEndpointResolver): the single shared manager.
|
|
55
|
+
*
|
|
56
|
+
* CONN-001 (DOD-CONN-2): the per-agent manager wires BOTH registration AND inbound session
|
|
57
|
+
* handlers (session_assignment / seal_interrupted_request) via wirePerAgentSessionInbound,
|
|
58
|
+
* so a non-primary agent RECEIVES inbound sessions on its own stream. Attaching them to the
|
|
59
|
+
* primary (keystone) only would leave every other agent unable to receive.
|
|
60
|
+
*/
|
|
61
|
+
function getAgentSignaling(agentName, agentKeyProvider, agentPubkeyHex) {
|
|
62
|
+
// CONN-001: test / backward-compat path — a single shared manager (no per-agent isolation;
|
|
63
|
+
// a single injected signalingConnect). In production sharedSignaling is undefined and every
|
|
64
|
+
// agent builds its own dedicated manager below.
|
|
65
|
+
if (sharedSignaling) {
|
|
66
|
+
return { signaling: sharedSignaling, getNode: noSharedDirectoryNode };
|
|
67
|
+
}
|
|
68
|
+
const existing = perAgentSignaling.get(agentName);
|
|
69
|
+
if (existing)
|
|
70
|
+
return existing;
|
|
71
|
+
// Unreachable in practice: sharedSignaling is defined iff directoryEndpointResolver is absent, and
|
|
72
|
+
// the sharedSignaling branch above already returned. This narrows the resolver for the type-checker
|
|
73
|
+
// and is a defensive guard.
|
|
74
|
+
if (!directoryEndpointResolver) {
|
|
75
|
+
throw new Error("getAgentSignaling: no directory endpoint resolver configured (and no shared manager)");
|
|
76
|
+
}
|
|
77
|
+
// FINDING-4: dial through the roster-aware failover resolver so this agent's signaling
|
|
78
|
+
// stream routes around a down primary node. (failoverEndpointResolver is defined here
|
|
79
|
+
// because it is built iff directoryEndpointResolver is — guarded non-null just above.)
|
|
80
|
+
const resolver = failoverEndpointResolver ?? directoryEndpointResolver;
|
|
81
|
+
let nodeRef = null;
|
|
82
|
+
const connect = createSignalingConnect({
|
|
83
|
+
getDirectoryEndpoint: resolver,
|
|
84
|
+
getAuthIdentity: () => ({ keyProvider: agentKeyProvider, pubkeyHex: agentPubkeyHex }),
|
|
85
|
+
logger,
|
|
86
|
+
challengeVerifier,
|
|
87
|
+
getManifestVersion: () => verifiedManifestVersion,
|
|
88
|
+
publishNode: (n) => {
|
|
89
|
+
nodeRef = n;
|
|
90
|
+
},
|
|
91
|
+
// DOD-NAT-REACHABILITY-1 (Phase 2): the directory's relay pool arrives with
|
|
92
|
+
// signaling_auth_ok — feed it to the session node manager so this agent's
|
|
93
|
+
// standing receiver reserves with those relays (and rebuilds if it came up
|
|
94
|
+
// deaf because agent-online raced ahead of this connect).
|
|
95
|
+
onRelayEndpoints: (endpoints) => {
|
|
96
|
+
sessionNodeManager.setDirectoryRelayEndpoints(agentName, endpoints.map((e) => ({ relayPeerId: e.peerId, relayAddrs: e.addrs })));
|
|
97
|
+
},
|
|
98
|
+
// DOD-M15-RELAYSLOTS-1: and the credential those relays require. Same frame, same cadence as
|
|
99
|
+
// the endpoints above — every connect and every reconnect, which is what keeps a token that
|
|
100
|
+
// expires within the hour current for a receiver that lives much longer than that.
|
|
101
|
+
onOnlineToken: (token) => {
|
|
102
|
+
sessionNodeManager.setDirectoryOnlineToken(agentName, token);
|
|
103
|
+
},
|
|
104
|
+
// Review M1: and when there is none, WHY — so the operator surface can say "this directory
|
|
105
|
+
// does not know this agent" instead of "check your directory connection" about a connection
|
|
106
|
+
// that just succeeded.
|
|
107
|
+
onOnlineTokenAbsent: (reason) => {
|
|
108
|
+
sessionNodeManager.setDirectoryOnlineTokenAbsent(agentName, reason);
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
const mgr = new SignalingManager({
|
|
112
|
+
connect,
|
|
113
|
+
logger,
|
|
114
|
+
maxReconnectAttempts: Number.MAX_SAFE_INTEGER,
|
|
115
|
+
maxBackoffMs: 30_000,
|
|
116
|
+
// Two things happen when this agent's directory signaling reaches 'connected' (the first
|
|
117
|
+
// connect AND every reconnect after a drop), and the ORDER is the contract — see
|
|
118
|
+
// reconnect-drain.ts.
|
|
119
|
+
//
|
|
120
|
+
// RE-REGISTER THE STANDING RECEIVER (2026-07-31 incident). The receiver's LIFETIME is tied to
|
|
121
|
+
// this daemon; its REGISTRATION is tied to this stream, and the stream turns over roughly
|
|
122
|
+
// every 70 seconds. ensureStandingReceiverForAgent ran only at agent start, so 46 of 48
|
|
123
|
+
// reconnects in one hour left every agent unregistered — the directory then answers
|
|
124
|
+
// `targetStreamFound: false` and a session request fails with `target_offline`, while
|
|
125
|
+
// `cello status`, `agent.online` and the directory's own agent_presence all still report the
|
|
126
|
+
// agent healthy. Only a daemon restart recovered it.
|
|
127
|
+
//
|
|
128
|
+
// THEN DRAIN (M8C-RELAYWAKE-1, "check relay on wakeup"): re-pull this agent's parked mailbox
|
|
129
|
+
// from every relay it has session history with, so a message parked while signaling was down
|
|
130
|
+
// is not left until the next agent start. The drain needs the node the ensure builds, which
|
|
131
|
+
// is why it no longer runs beside it.
|
|
132
|
+
//
|
|
133
|
+
// AND THIRD, DOD-M15-ENDORSE-RETRY-1: re-send any sealed submission that reached no node.
|
|
134
|
+
// Deliberately outside `createReconnectDrain`'s ensure→drain contract and after it: that
|
|
135
|
+
// ordering exists because the drain needs the standing receiver the ensure rebuilds, and a
|
|
136
|
+
// submission needs neither — it needs only the stream that just came up.
|
|
137
|
+
onConnected: () => {
|
|
138
|
+
onSignalingConnected(agentName);
|
|
139
|
+
submissionRetries.onSignalingConnected(agentName);
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
const entry = { signaling: mgr, getNode: () => nodeRef };
|
|
143
|
+
perAgentSignaling.set(agentName, entry);
|
|
144
|
+
logger.info("agent.signaling.created", { agentName, agentPubkey: agentPubkeyHex });
|
|
145
|
+
// DOD-SPINE-5: answer the directory's delegated-signing `ceremony_request` on THIS
|
|
146
|
+
// agent's stream (the session FROST ceremony — the per-agent counterpart to SPINE-4's
|
|
147
|
+
// registration routing). Unregistered implicitly when the manager is stopped.
|
|
148
|
+
wireSessionCeremonyHandler({
|
|
149
|
+
agentName,
|
|
150
|
+
persistence: getPersistence(agentName),
|
|
151
|
+
agentPubkeyHex,
|
|
152
|
+
// DOD-M15-SEALWIRE-1 bullet 2 (review F1): the co-sign path must check the root before this
|
|
153
|
+
// agent's key endorses it. Same predicate as the receiving path — one implementation, so the
|
|
154
|
+
// two halves cannot drift about what a mismatch is.
|
|
155
|
+
verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
|
|
156
|
+
keyProvider: agentKeyProvider,
|
|
157
|
+
getNode: entry.getNode,
|
|
158
|
+
getDirectoryEndpoint: getFailoverEndpoint,
|
|
159
|
+
getConsortiumEndpoints: resolveConsortiumRoster,
|
|
160
|
+
signaling: mgr,
|
|
161
|
+
logger,
|
|
162
|
+
// DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
|
|
163
|
+
// can say it FAILED and why instead of falling through to "no receipt yet".
|
|
164
|
+
recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
|
|
165
|
+
});
|
|
166
|
+
// DOD-SPINE-7: coordinate the SEAL FROST ceremony on this agent's stream too.
|
|
167
|
+
wireSealCeremonyHandler({
|
|
168
|
+
agentName,
|
|
169
|
+
persistence: getPersistence(agentName),
|
|
170
|
+
agentPubkeyHex,
|
|
171
|
+
// DOD-M15-SEALWIRE-1 bullet 2 (review F1): the co-sign path must check the root before this
|
|
172
|
+
// agent's key endorses it. Same predicate as the receiving path — one implementation, so the
|
|
173
|
+
// two halves cannot drift about what a mismatch is.
|
|
174
|
+
verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
|
|
175
|
+
keyProvider: agentKeyProvider,
|
|
176
|
+
getNode: entry.getNode,
|
|
177
|
+
getDirectoryEndpoint: getFailoverEndpoint,
|
|
178
|
+
getConsortiumEndpoints: resolveConsortiumRoster,
|
|
179
|
+
signaling: mgr,
|
|
180
|
+
logger,
|
|
181
|
+
// DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
|
|
182
|
+
// can say it FAILED and why instead of falling through to "no receipt yet".
|
|
183
|
+
recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
|
|
184
|
+
});
|
|
185
|
+
// DOD-SPINE-7: and resolve session_sealed for this agent's sessions on its own stream.
|
|
186
|
+
registerSealListeners(mgr, agentName, agentPubkeyHex);
|
|
187
|
+
// WIRE-002: answer the directory's session_offer on this agent's stream (advertise the
|
|
188
|
+
// standing-receiver session endpoint so the assignment carries a reachable counterparty).
|
|
189
|
+
wireSessionOfferHandler({
|
|
190
|
+
agentName,
|
|
191
|
+
getStandingReceiverEndpoint: () => sessionNodeManager.getStandingReceiverInfo(agentName),
|
|
192
|
+
admitOfferedDialer: (peerId, sessionIdHex) => sessionNodeManager.admitOfferedDialer(agentName, peerId, sessionIdHex),
|
|
193
|
+
// DOD-M15-RELAYONLY-1: lets the handler tell "no addresses because relay-only filtered them"
|
|
194
|
+
// from "no addresses yet", which need opposite answers — a refusal, and the pre-existing path.
|
|
195
|
+
isRelayOnly: () => relayOnlyState((key) => sessionNodeManager.getSetting(agentName, key), sessionNodeManager.hasDatabase()) !== "off",
|
|
196
|
+
signaling: mgr,
|
|
197
|
+
logger,
|
|
198
|
+
});
|
|
199
|
+
// CELLO-M8-TRUST-001: receive sealed trust signals pushed from the directory pickup queue on
|
|
200
|
+
// THIS agent's stream. Open with k_local, verify the recomputed hash against the directory
|
|
201
|
+
// anchor, store locally, then ACK (so the directory deletes the ciphertext). The daemon is the
|
|
202
|
+
// ONLY party that can open the seal (SI-001); a hash mismatch is rejected without storing/ACKing.
|
|
203
|
+
mgr.registerInboundHandler((frame) => {
|
|
204
|
+
if (frame["type"] !== "trust_signal_pickup")
|
|
205
|
+
return;
|
|
206
|
+
void getHandleTrustSignalPickup()(frame, agentKeyProvider, mgr, agentName);
|
|
207
|
+
});
|
|
208
|
+
/**
|
|
209
|
+
* DOD-M15-SEALPARTIES-1 Part 0: take the relay credential off `register_success`.
|
|
210
|
+
*
|
|
211
|
+
* `onOnlineToken` above catches every signaling auth and reconnect, and misses the one case that
|
|
212
|
+
* matters most: a brand-new agent. Its daemon opens this very stream in order TO register (the
|
|
213
|
+
* DKG runs over it), so the auth that created the stream happened while the directory still had
|
|
214
|
+
* no profile for the key and correctly issued nothing. A healthy stream never re-authenticates,
|
|
215
|
+
* so without this the agent holds no relay credential for the life of the daemon — no circuit
|
|
216
|
+
* reservation, unwitnessed leaves, and a close that fails with `seal_persist_failed`.
|
|
217
|
+
*
|
|
218
|
+
* A frame with no token is left alone rather than clearing what is held: the directory that
|
|
219
|
+
* issues here is the same one whose auth_ok issues, so overwriting a good token with an absence
|
|
220
|
+
* would turn one directory's minting failure into a reachability outage the operator cannot
|
|
221
|
+
* explain. The absence is already reported by the directory's own `online_token.failed`.
|
|
222
|
+
*/
|
|
223
|
+
mgr.registerInboundHandler((frame) => {
|
|
224
|
+
if (frame["type"] !== "register_success")
|
|
225
|
+
return;
|
|
226
|
+
const raw = frame["online_token"];
|
|
227
|
+
const token = raw instanceof Uint8Array ? raw : Buffer.isBuffer(raw) ? new Uint8Array(raw) : undefined;
|
|
228
|
+
if (token && token.length > 0) {
|
|
229
|
+
sessionNodeManager.setDirectoryOnlineToken(agentName, token);
|
|
230
|
+
logger.info("directory.online_token.received", { agentName, source: "register_success", bytes: token.length });
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
logger.warn("directory.online_token.absent", {
|
|
234
|
+
agentName,
|
|
235
|
+
source: "register_success",
|
|
236
|
+
impact: "this agent just registered and was handed no relay online token, so no relay will " +
|
|
237
|
+
"let it hold a circuit reservation until its directory signaling stream reconnects and " +
|
|
238
|
+
"re-issues one. Until then it is reachable only over a direct connection, and a session " +
|
|
239
|
+
"it does hold cannot get its leaves witnessed.",
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
// CELLO-M7-CONN-001 (DOD-CONN-2): inbound session_assignment + seal_interrupted_request
|
|
243
|
+
// on THIS agent's own stream, so a non-primary agent receives inbound sessions (SPINE-5).
|
|
244
|
+
getWirePerAgentSessionInbound()(mgr, agentName);
|
|
245
|
+
return entry;
|
|
246
|
+
}
|
|
247
|
+
/** Resolve once `mgr` reaches "connected", or false on timeout. */
|
|
248
|
+
async function waitForSignalingConnected(mgr, timeoutMs) {
|
|
249
|
+
const deadline = Date.now() + timeoutMs;
|
|
250
|
+
while (mgr.status !== "connected" && Date.now() < deadline) {
|
|
251
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
252
|
+
}
|
|
253
|
+
return mgr.status === "connected";
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Stop and forget a dedicated per-agent signaling manager. Called when an agent's
|
|
257
|
+
* registration fails terminally — otherwise the lazily-created manager (and its
|
|
258
|
+
* libp2p node + effectively-unbounded reconnect loop) would keep reconnecting forever
|
|
259
|
+
* for an agent that is not registered/online. No-op on the test path (the shared manager is not
|
|
260
|
+
* stored in perAgentSignaling) and for agents with no dedicated manager. On a later retry,
|
|
261
|
+
* getAgentSignaling re-creates it.
|
|
262
|
+
*/
|
|
263
|
+
async function dropAgentSignaling(agentName) {
|
|
264
|
+
const entry = perAgentSignaling.get(agentName);
|
|
265
|
+
if (!entry)
|
|
266
|
+
return;
|
|
267
|
+
perAgentSignaling.delete(agentName);
|
|
268
|
+
await entry.signaling.stop();
|
|
269
|
+
logger.info("agent.signaling.dropped", { agentName });
|
|
270
|
+
}
|
|
271
|
+
// CONN-001: wire a manager's session/seal/offer handlers for `agent`. Used ONLY for the
|
|
272
|
+
// in-process test path's shared manager — production wires these PER-AGENT in getAgentSignaling.
|
|
273
|
+
function wireSharedHandlers(agent, mgr) {
|
|
274
|
+
wireSessionCeremonyHandler({
|
|
275
|
+
agentName: agent.name,
|
|
276
|
+
persistence: getPersistence(agent.name),
|
|
277
|
+
agentPubkeyHex: agent.pubkey,
|
|
278
|
+
// DOD-M15-SEALWIRE-1 bullet 2 (review F1): gate the co-signature on the root check.
|
|
279
|
+
verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
|
|
280
|
+
keyProvider: agent.keyProvider,
|
|
281
|
+
getNode: noSharedDirectoryNode,
|
|
282
|
+
getDirectoryEndpoint: getFailoverEndpoint,
|
|
283
|
+
getConsortiumEndpoints: resolveConsortiumRoster,
|
|
284
|
+
signaling: mgr,
|
|
285
|
+
logger,
|
|
286
|
+
// DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
|
|
287
|
+
// can say it FAILED and why instead of falling through to "no receipt yet".
|
|
288
|
+
recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
|
|
289
|
+
});
|
|
290
|
+
wireSealCeremonyHandler({
|
|
291
|
+
agentName: agent.name,
|
|
292
|
+
persistence: getPersistence(agent.name),
|
|
293
|
+
agentPubkeyHex: agent.pubkey,
|
|
294
|
+
// DOD-M15-SEALWIRE-1 bullet 2 (review F1): gate the co-signature on the root check.
|
|
295
|
+
verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
|
|
296
|
+
keyProvider: agent.keyProvider,
|
|
297
|
+
getNode: noSharedDirectoryNode,
|
|
298
|
+
getDirectoryEndpoint: getFailoverEndpoint,
|
|
299
|
+
getConsortiumEndpoints: resolveConsortiumRoster,
|
|
300
|
+
signaling: mgr,
|
|
301
|
+
logger,
|
|
302
|
+
// DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
|
|
303
|
+
// can say it FAILED and why instead of falling through to "no receipt yet".
|
|
304
|
+
recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
|
|
305
|
+
});
|
|
306
|
+
wireSessionOfferHandler({
|
|
307
|
+
agentName: agent.name,
|
|
308
|
+
getStandingReceiverEndpoint: () => sessionNodeManager.getStandingReceiverInfo(agent.name),
|
|
309
|
+
admitOfferedDialer: (peerId, sessionIdHex) => sessionNodeManager.admitOfferedDialer(agent.name, peerId, sessionIdHex),
|
|
310
|
+
// DOD-M15-RELAYONLY-1 — see the note on the sibling call site above.
|
|
311
|
+
isRelayOnly: () => relayOnlyState((key) => sessionNodeManager.getSetting(agent.name, key), sessionNodeManager.hasDatabase()) !== "off",
|
|
312
|
+
signaling: mgr,
|
|
313
|
+
logger,
|
|
314
|
+
});
|
|
315
|
+
registerSealListeners(mgr, agent.name, agent.pubkey);
|
|
316
|
+
}
|
|
317
|
+
// CONN-001: the directory signaling manager that OWNS operations for `agentName`. In production
|
|
318
|
+
// that is the agent's OWN per-agent manager (authenticated as itself); on the in-process test
|
|
319
|
+
// path it is the single shared manager (agentName ignored). Returns undefined only when the agent
|
|
320
|
+
// is not loaded in production (e.g. removed mid-flow) — callers treat that as a send failure.
|
|
321
|
+
function signalingFor(agentName) {
|
|
322
|
+
if (sharedSignaling)
|
|
323
|
+
return sharedSignaling;
|
|
324
|
+
const kp = keyProviders.get(agentName);
|
|
325
|
+
const agent = loadedAgents.find((a) => a.name === agentName);
|
|
326
|
+
if (!kp || !agent)
|
|
327
|
+
return undefined;
|
|
328
|
+
return getAgentSignaling(agentName, kp, agent.pubkey).signaling;
|
|
329
|
+
}
|
|
330
|
+
// CONN-001: send a frame over the OWNING agent's directory manager (per-agent in production, the
|
|
331
|
+
// shared manager in tests). If the agent has no manager (e.g. removed mid-flow), return a send
|
|
332
|
+
// failure rather than throw — callers already branch on `!result.ok`.
|
|
333
|
+
async function sendOver(agentName, frame) {
|
|
334
|
+
const mgr = signalingFor(agentName);
|
|
335
|
+
if (!mgr)
|
|
336
|
+
return { ok: false, reason: "directory_unreachable" };
|
|
337
|
+
return mgr.sendRaw(frame);
|
|
338
|
+
}
|
|
339
|
+
// CONN-001: aggregate directory signaling status for `cello status`. Test path → the shared
|
|
340
|
+
// manager's status. Production → connected if ANY online agent's connection is connected; else
|
|
341
|
+
// reconnecting if any per-agent connection exists; else disconnected (no agents online → no
|
|
342
|
+
// connections, which is correct — there is no shared connection to be "reconnecting").
|
|
343
|
+
function directorySignalingStatus() {
|
|
344
|
+
if (sharedSignaling)
|
|
345
|
+
return sharedSignaling.status;
|
|
346
|
+
const managers = [...perAgentSignaling.values()];
|
|
347
|
+
// CONN-001 (fallback-finder MED): a single daemon-level field cannot fully represent N independent
|
|
348
|
+
// per-agent connections, but it must NOT show "connected" while any agent is severed (that would
|
|
349
|
+
// mask a partial directory outage — the severed agent silently never receives inbound). So report
|
|
350
|
+
// "connected" ONLY when every per-agent manager is connected; otherwise "reconnecting" (degraded or
|
|
351
|
+
// none). No managers (no agent online) → "reconnecting", matching pre-CONN-001 fresh-install
|
|
352
|
+
// behavior. (Per-agent connection state is the future faithful surface.)
|
|
353
|
+
if (managers.length === 0)
|
|
354
|
+
return "reconnecting";
|
|
355
|
+
return managers.every((m) => m.signaling.status === "connected") ? "connected" : "reconnecting";
|
|
356
|
+
}
|
|
357
|
+
// CONN-001: stop every directory signaling connection on shutdown — the shared test manager AND
|
|
358
|
+
// every per-agent manager — so no reconnect loop is orphaned past shutdown.
|
|
359
|
+
async function stopAllSignaling() {
|
|
360
|
+
if (sharedSignaling) {
|
|
361
|
+
try {
|
|
362
|
+
await sharedSignaling.stop();
|
|
363
|
+
}
|
|
364
|
+
catch { /* best-effort */ }
|
|
365
|
+
}
|
|
366
|
+
for (const entry of perAgentSignaling.values()) {
|
|
367
|
+
try {
|
|
368
|
+
await entry.signaling.stop();
|
|
369
|
+
}
|
|
370
|
+
catch { /* best-effort */ }
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// CONN-001: test path only — wire the shared manager's session/seal handlers for the first loaded
|
|
374
|
+
// agent. Production wires them per-agent (getAgentSignaling). There is NO keystone identity to
|
|
375
|
+
// elect and no re-election machinery: the shared test manager is never removed, and in production
|
|
376
|
+
// a fresh create-agent brings up that agent's OWN connection (no shared door to elect into).
|
|
377
|
+
if (sharedSignaling && loadedAgents.length > 0) {
|
|
378
|
+
const first = [...loadedAgents].sort((a, b) => a.name.localeCompare(b.name))[0];
|
|
379
|
+
wireSharedHandlers(first, sharedSignaling);
|
|
380
|
+
}
|
|
381
|
+
return {
|
|
382
|
+
perAgentSignaling,
|
|
383
|
+
getAgentSignaling,
|
|
384
|
+
waitForSignalingConnected,
|
|
385
|
+
dropAgentSignaling,
|
|
386
|
+
signalingFor,
|
|
387
|
+
sendOver,
|
|
388
|
+
directorySignalingStatus,
|
|
389
|
+
stopAllSignaling,
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=signaling-wiring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signaling-wiring.js","sourceRoot":"","sources":["../src/signaling-wiring.ts"],"names":[],"mappings":"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"}
|