@agentproto/runtime 5.4.1 → 5.6.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/dist/config-schema.mjs +14 -1
- package/dist/config-schema.mjs.map +1 -1
- package/dist/config.mjs +14 -1
- package/dist/config.mjs.map +1 -1
- package/dist/index.d.ts +331 -1
- package/dist/index.mjs +1194 -243
- package/dist/index.mjs.map +1 -1
- package/dist/session-presence.mjs +14 -1
- package/dist/session-presence.mjs.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -695,6 +695,10 @@ interface RemoteStatus {
|
|
|
695
695
|
|
|
696
696
|
/** `hosts.json` format. */
|
|
697
697
|
declare const HOSTS_VERSION: 1;
|
|
698
|
+
/** One-line remediation logged once per failure streak once the threshold
|
|
699
|
+
* is crossed. Deliberately NOT a protocol change — the pairing itself is
|
|
700
|
+
* fine; a fresh host-scoped offer re-binds it. */
|
|
701
|
+
declare const HOST_HANDSHAKE_REMEDIATION_HINT: string;
|
|
698
702
|
/** One persisted host — a daemon this daemon can drive. */
|
|
699
703
|
interface HostRecord {
|
|
700
704
|
/** The target daemon's identity fingerprint (32 hex). */
|
|
@@ -922,6 +926,13 @@ interface HostRegistry {
|
|
|
922
926
|
start(): Promise<void>;
|
|
923
927
|
}
|
|
924
928
|
declare function createHostRegistry(deps: HostRegistryDeps): HostRegistry;
|
|
929
|
+
/** Read-only snapshot of `hosts.json` (the read-only twin of
|
|
930
|
+
* `readPairingsSnapshot`): for callers that just want the persisted
|
|
931
|
+
* records — e.g. `agentproto doctor`'s devices check flagging a host
|
|
932
|
+
* channel that persistently fails its handshake (BOOTSTRAP P3 item 4).
|
|
933
|
+
* No dial, no rendezvous, no `loadIdentity` deps. Never throws — a
|
|
934
|
+
* missing or malformed file yields `[]`. */
|
|
935
|
+
declare function readHostsSnapshot(path?: string): Promise<HostRecord[]>;
|
|
925
936
|
|
|
926
937
|
/**
|
|
927
938
|
* Daemon-side JOIN TOKEN registry (SANDBOX-VISIBILITY-JOIN, stacked on
|
|
@@ -6410,6 +6421,262 @@ interface SentinelView {
|
|
|
6410
6421
|
lastError?: string;
|
|
6411
6422
|
}
|
|
6412
6423
|
|
|
6424
|
+
/**
|
|
6425
|
+
* Standard Webhooks `whsec_` signing for webhook egress (W-A of
|
|
6426
|
+
* `.plans/sentinel-mcp-events/PLAN.md`).
|
|
6427
|
+
*
|
|
6428
|
+
* Contract (frozen §3):
|
|
6429
|
+
* - HMAC-SHA256 over `msgId.timestamp.body` (raw bytes; `.update` chained so
|
|
6430
|
+
* the body is never re-encoded — payload arrives as `Uint8Array`, I2).
|
|
6431
|
+
* - Signature print = standard base64 (NOT base64url): `v1,<b64>`.
|
|
6432
|
+
* - HMAC key = the base64 payload DECODED after the `whsec_` prefix.
|
|
6433
|
+
* - Multi-secret: space-separated `v1,<sig>` segments (rotation window).
|
|
6434
|
+
* - Returns ONLY headers — the caller owns the bytes and signs them again
|
|
6435
|
+
* with a fresh timestamp on retry; signing never re-serializes.
|
|
6436
|
+
*/
|
|
6437
|
+
interface WebhookSignInput {
|
|
6438
|
+
/** Stable event id (`evt_…` / verification `msg_verification_…`) — same across retries. */
|
|
6439
|
+
msgId: string;
|
|
6440
|
+
/** Seconds, Unix epoch (Standard Webhooks wire format). */
|
|
6441
|
+
timestamp: number;
|
|
6442
|
+
/** Exact bytes — signed once (I2). Caller passes the serialization; signing never re-serializes. */
|
|
6443
|
+
payload: Uint8Array;
|
|
6444
|
+
/** One or, during a rotation window, two secrets (`whsec_…`). */
|
|
6445
|
+
secrets: readonly string[];
|
|
6446
|
+
}
|
|
6447
|
+
type WebhookSignatureHeaders = {
|
|
6448
|
+
"webhook-id": string;
|
|
6449
|
+
"webhook-timestamp": string;
|
|
6450
|
+
"webhook-signature": string;
|
|
6451
|
+
};
|
|
6452
|
+
/**
|
|
6453
|
+
* Encode raw secret bytes into the `whsec_<base64>` wire format.
|
|
6454
|
+
* Inverse of {@link decodeWhsecSecret}.
|
|
6455
|
+
*/
|
|
6456
|
+
declare function encodeWhsecSecret(raw: Uint8Array): string;
|
|
6457
|
+
/**
|
|
6458
|
+
* Decode a `whsec_…` secret to its raw HMAC key: standard-base64 payload
|
|
6459
|
+
* after the prefix, which must decode to 24..64 bytes. Returns `null` on any
|
|
6460
|
+
* violation (bad prefix, not base64, length out of range). The canonical
|
|
6461
|
+
* validator for W-C: a submit failing this is `-32602` upstream; egress
|
|
6462
|
+
* surfaces it as a categorized challenge failure.
|
|
6463
|
+
*/
|
|
6464
|
+
declare function decodeWhsecSecret(secret: string): Buffer | null;
|
|
6465
|
+
/**
|
|
6466
|
+
* Sign exactly the bytes given. Throws `Error` when any secret fails
|
|
6467
|
+
* {@link decodeWhsecSecret} (callers must have validated upstream; a bad
|
|
6468
|
+
* secret at this point is a programmer error, never silently signed).
|
|
6469
|
+
*/
|
|
6470
|
+
declare function signWebhook(input: WebhookSignInput): WebhookSignatureHeaders;
|
|
6471
|
+
|
|
6472
|
+
/**
|
|
6473
|
+
* SSRF-guarded outbound HTTPS POST for webhook egress (W-A of
|
|
6474
|
+
* `.plans/sentinel-mcp-events/PLAN.md`).
|
|
6475
|
+
*
|
|
6476
|
+
* Frozen failure-mode reasons: `non_https | private_target | redirect |
|
|
6477
|
+
* timeout | connect` — mapped by challenge to the §3 ChallengeFailureReason
|
|
6478
|
+
* table; the SAME function guards BOTH the challenge and delivery path (I3).
|
|
6479
|
+
* No HTTP client library addition: node http/https only.
|
|
6480
|
+
*
|
|
6481
|
+
* Safety model (one predicate, fail closed):
|
|
6482
|
+
* 1. scheme must be https → `non_https`
|
|
6483
|
+
* 2. ALL DNS-resolved addresses (A + AAAA, plus literal-IP hosts) must pass
|
|
6484
|
+
* {@link isPubliclyRoutable}, else `private_target` — one rejected
|
|
6485
|
+
* address fails; unparseable/odd literals fail closed
|
|
6486
|
+
* 3. connect pins the VALIDATED IP (no second resolution → the
|
|
6487
|
+
* DNS-rebinding TOCTOU is closed) while `servername` keeps the ORIGINAL
|
|
6488
|
+
* hostname for TLS SNI + certificate verification
|
|
6489
|
+
* 4. redirects are never followed: a 3xx comes back as a plain
|
|
6490
|
+
* `{status: 3xx}` result (challenge → "non_2xx", delivery → retryable);
|
|
6491
|
+
* a non-https redirect target additionally throws `redirect`
|
|
6492
|
+
* 5. hard `timeoutMs` budget; request body clamped to 256 KiB here too
|
|
6493
|
+
* (defense-in-depth — delivery clamps before signing)
|
|
6494
|
+
*/
|
|
6495
|
+
type SsrfFetchReason = "non_https" | "private_target" | "redirect" | "timeout" | "connect";
|
|
6496
|
+
declare class SsrfFetchError extends Error {
|
|
6497
|
+
readonly reason: SsrfFetchReason;
|
|
6498
|
+
constructor(reason: SsrfFetchReason, message: string);
|
|
6499
|
+
}
|
|
6500
|
+
interface SsrfFetchInit {
|
|
6501
|
+
method?: "POST";
|
|
6502
|
+
headers?: Record<string, string>;
|
|
6503
|
+
/** ≤ 262 144; enforced also on response read (only status + body read). */
|
|
6504
|
+
body?: Uint8Array;
|
|
6505
|
+
timeoutMs: number;
|
|
6506
|
+
}
|
|
6507
|
+
interface SsrfFetchResult {
|
|
6508
|
+
status: number;
|
|
6509
|
+
body: string;
|
|
6510
|
+
}
|
|
6511
|
+
/**
|
|
6512
|
+
* The one predicate for every address this module may connect to. Fails
|
|
6513
|
+
* closed — anything unparseable, IPv4-mapped with an invalid embedded v4, or
|
|
6514
|
+
* inside a non-globally-routable block is NOT public.
|
|
6515
|
+
*
|
|
6516
|
+
* Plan §4 W-A.2 ranges:
|
|
6517
|
+
* IPv4 — 0/8, 10/8, 127/8, 169.254/16, 172.16/12, 192.0.0.0/24,
|
|
6518
|
+
* 192.0.2.0/24, 198.18/15, 198.51.100.0/24, 203.0.113.0/24,
|
|
6519
|
+
* 100.64/10 (CGNAT), 224/4 (multicast), 240/4 (reserved)
|
|
6520
|
+
* IPv6 — ::, ::1, fc00::/7 (ULA), fe80::/10 (link-local),
|
|
6521
|
+
* ff00::/8 (multicast), 2001:db8::/32 (doc range), and ::ffff:
|
|
6522
|
+
* mapped-v4 whose EMBEDDED v4 re-runs this very predicate
|
|
6523
|
+
*/
|
|
6524
|
+
declare function isPubliclyRoutable(ipRaw: string): boolean;
|
|
6525
|
+
type SsrfResolvers = {
|
|
6526
|
+
/** Replaces both A and AAAA resolution. Returns every address, any family. */
|
|
6527
|
+
lookup?: (host: string) => Promise<Array<{
|
|
6528
|
+
address: string;
|
|
6529
|
+
family: 4 | 6;
|
|
6530
|
+
}>>;
|
|
6531
|
+
};
|
|
6532
|
+
type EgressDispatcher = (req: {
|
|
6533
|
+
url: string;
|
|
6534
|
+
headers: Record<string, string>;
|
|
6535
|
+
body?: Uint8Array;
|
|
6536
|
+
timeoutMs: number;
|
|
6537
|
+
}) => Promise<SsrfFetchResult>;
|
|
6538
|
+
/** vitest-only: set a recording dispatcher; pass `null` to restore. */
|
|
6539
|
+
declare function setEgressDispatcherForTests(dispatcher: EgressDispatcher | null): void;
|
|
6540
|
+
declare function ssrfFetch(url: string, init: SsrfFetchInit, io?: {
|
|
6541
|
+
resolvers?: SsrfResolvers;
|
|
6542
|
+
}): Promise<SsrfFetchResult>;
|
|
6543
|
+
|
|
6544
|
+
/**
|
|
6545
|
+
* Callback challenge verification (W-A of `.plans/sentinel-mcp-events/PLAN.md`,
|
|
6546
|
+
* §3 frozen): POST `{"type":"verification","challenge":"<fresh 64-hex>"}` to
|
|
6547
|
+
* the candidate callback URL, signed with the CANDIDATE secret, carrying
|
|
6548
|
+
* `X-MCP-Subscription-Id`; require 2xx and a constant-time-equal
|
|
6549
|
+
* `{"challenge":"<same>"}` echo in the response body.
|
|
6550
|
+
*
|
|
6551
|
+
* Success cache: keyed (principal, normalized callback URL, sha256(secret)),
|
|
6552
|
+
* bounded TTL 10 min. A NEW secret during rotation NEVER resolves a cache
|
|
6553
|
+
* hit — the sha256(secret) key component structurally forces
|
|
6554
|
+
* re-verification (the cache can never bless an unverified secret).
|
|
6555
|
+
*
|
|
6556
|
+
* The outbound POST runs through the SAME `ssrfFetch` gate as delivery (I3) —
|
|
6557
|
+
* injectable here only for tests; production passes nothing.
|
|
6558
|
+
*/
|
|
6559
|
+
|
|
6560
|
+
type ChallengeOutcome = {
|
|
6561
|
+
ok: true;
|
|
6562
|
+
verificationBytes: Uint8Array;
|
|
6563
|
+
} | {
|
|
6564
|
+
ok: false;
|
|
6565
|
+
reason: ChallengeFailureReason;
|
|
6566
|
+
detail: string;
|
|
6567
|
+
};
|
|
6568
|
+
type ChallengeFailureReason = "challenge_failed" | "timeout" | "non_https" | "ssrf_blocked" | "non_2xx";
|
|
6569
|
+
interface VerifyCallbackInput {
|
|
6570
|
+
principal: string;
|
|
6571
|
+
url: string;
|
|
6572
|
+
subscriptionId: string;
|
|
6573
|
+
secret: string;
|
|
6574
|
+
}
|
|
6575
|
+
interface VerifyCallbackDeps {
|
|
6576
|
+
/** Replaces the POST boundary. Default: the shared `ssrfFetch` gate. */
|
|
6577
|
+
fetch?: (url: string, init: SsrfFetchArgs$1) => Promise<SsrfFetchView>;
|
|
6578
|
+
/** Clock for the bounded TTL. Default: real wall clock. */
|
|
6579
|
+
now?: () => number;
|
|
6580
|
+
}
|
|
6581
|
+
interface SsrfFetchArgs$1 {
|
|
6582
|
+
method?: "POST";
|
|
6583
|
+
headers?: Record<string, string>;
|
|
6584
|
+
body?: Uint8Array;
|
|
6585
|
+
timeoutMs: number;
|
|
6586
|
+
}
|
|
6587
|
+
interface SsrfFetchView {
|
|
6588
|
+
status: number;
|
|
6589
|
+
body: string;
|
|
6590
|
+
}
|
|
6591
|
+
/** §4 W-A task 4: the challenge reason table (single mapped, none unmapped). */
|
|
6592
|
+
declare function challengeReasonForSsrf(reason: SsrfFetchReason): ChallengeFailureReason;
|
|
6593
|
+
declare function challengeCacheSize(): number;
|
|
6594
|
+
/** vitest-only: clear the success cache between suites. */
|
|
6595
|
+
declare function resetChallengeCacheForTests(): void;
|
|
6596
|
+
/** Cache-key URL normalization (never reused for anything else). */
|
|
6597
|
+
declare function normalizeCallbackUrl(url: string): string | null;
|
|
6598
|
+
declare function verifyCallback(input: VerifyCallbackInput, deps?: VerifyCallbackDeps): Promise<ChallengeOutcome>;
|
|
6599
|
+
|
|
6600
|
+
/**
|
|
6601
|
+
* Signed event delivery with bounded retry (W-A of
|
|
6602
|
+
* `.plans/sentinel-mcp-events/PLAN.md`, §3 frozen).
|
|
6603
|
+
*
|
|
6604
|
+
* I2 — the body is serialized ONCE: the clamp (when needed) happens first,
|
|
6605
|
+
* then the exact bytes are signed per attempt with a FRESH timestamp. An
|
|
6606
|
+
* observer sees a different `webhook-signature` header per attempt while the
|
|
6607
|
+
* body bytes stay bitwise identical — `signWebhook` returns ONLY headers and
|
|
6608
|
+
* never re-serializes.
|
|
6609
|
+
*
|
|
6610
|
+
* ≤ 256 KiB — when the serialized body exceeds 262 144 bytes, `data` is
|
|
6611
|
+
* replaced with `{summary, subject}` and the envelope gains `truncated: true`
|
|
6612
|
+
* (no read tool — plan §5), and the CLAMPED bytes (not the original) are what
|
|
6613
|
+
* every attempt signs.
|
|
6614
|
+
*
|
|
6615
|
+
* Retry — exponential backoff bounded to 5 attempts; 3xx / other 4xx / 5xx /
|
|
6616
|
+
* network errors retry; 410/413 are terminal with NO further attempt;
|
|
6617
|
+
* 2xx = delivered. The returned `DeliveryState` is what the caller persists
|
|
6618
|
+
* into the store for post-restart resume (W-B's job to wire).
|
|
6619
|
+
*/
|
|
6620
|
+
type McpEventEnvelope = {
|
|
6621
|
+
/** OpenAI doc wire shape VERBATIM (developers.openai.com/plugins/build/mcp-events):
|
|
6622
|
+
* `eventId` (NOT `id` — the `webhook-id` header carries eventId), `name`,
|
|
6623
|
+
* `timestamp`, `data`, `cursor`. A top-level `type` field = protocol
|
|
6624
|
+
* control notification only — never sent by us (no control events). */
|
|
6625
|
+
eventId: string;
|
|
6626
|
+
name: string;
|
|
6627
|
+
timestamp: string;
|
|
6628
|
+
data: Record<string, unknown>;
|
|
6629
|
+
cursor: string | null;
|
|
6630
|
+
truncated?: boolean;
|
|
6631
|
+
};
|
|
6632
|
+
interface DeliveryState {
|
|
6633
|
+
attempts: number;
|
|
6634
|
+
lastError?: string;
|
|
6635
|
+
lastAt?: string;
|
|
6636
|
+
}
|
|
6637
|
+
interface DeliveryReplay {
|
|
6638
|
+
subId: string;
|
|
6639
|
+
callbackUrl: string;
|
|
6640
|
+
secrets: readonly string[];
|
|
6641
|
+
}
|
|
6642
|
+
/** One event → one POST. Frozen §3 outcome. */
|
|
6643
|
+
type DeliveryOutcome = {
|
|
6644
|
+
ok: true;
|
|
6645
|
+
delivery: DeliveryState;
|
|
6646
|
+
} | {
|
|
6647
|
+
ok: false;
|
|
6648
|
+
reason: string;
|
|
6649
|
+
delivery: DeliveryState;
|
|
6650
|
+
};
|
|
6651
|
+
interface SsrfFetchArgs {
|
|
6652
|
+
method?: "POST";
|
|
6653
|
+
headers?: Record<string, string>;
|
|
6654
|
+
body?: Uint8Array;
|
|
6655
|
+
timeoutMs: number;
|
|
6656
|
+
}
|
|
6657
|
+
interface DeliverEventDeps {
|
|
6658
|
+
/** Replaces the POST boundary (tests only). Default: the shared `ssrfFetch` gate. */
|
|
6659
|
+
fetch?: (url: string, init: SsrfFetchArgs) => Promise<{
|
|
6660
|
+
status: number;
|
|
6661
|
+
body: string;
|
|
6662
|
+
}>;
|
|
6663
|
+
/** Backoff sleep (tests only). Default: real `setTimeout`. */
|
|
6664
|
+
sleep?: (ms: number) => Promise<void>;
|
|
6665
|
+
/** Clock (tests only). Default: real wall clock. */
|
|
6666
|
+
now?: () => number;
|
|
6667
|
+
}
|
|
6668
|
+
declare const CLAMP_LIMIT_BYTES = 262144;
|
|
6669
|
+
declare const MAX_ATTEMPTS = 5;
|
|
6670
|
+
/** Bounded exponential backoff: 250, 500, 1000, 2000, capped at 4000 (attempt ≥ 4). */
|
|
6671
|
+
declare function deliveryBackoffDelay(attempt: number): number;
|
|
6672
|
+
declare function serializeEnvelope(envelope: McpEventEnvelope): Uint8Array;
|
|
6673
|
+
/** Serialize once; over-size → `{summary, subject}` + `truncated:true` (§3). */
|
|
6674
|
+
declare function envelopeClampedBytes(event: McpEventEnvelope): {
|
|
6675
|
+
bytes: Uint8Array;
|
|
6676
|
+
clamped: boolean;
|
|
6677
|
+
};
|
|
6678
|
+
declare function deliverEventEnvelope(replay: DeliveryReplay, event: McpEventEnvelope, deps?: DeliverEventDeps): Promise<DeliveryOutcome>;
|
|
6679
|
+
|
|
6413
6680
|
/**
|
|
6414
6681
|
* Smart default for `features.llmEndpoint` (daemon-managed-gateway): an
|
|
6415
6682
|
* operator who already configured a named endpoint, an upstream credential
|
|
@@ -6548,6 +6815,63 @@ interface DeviceRegistry {
|
|
|
6548
6815
|
forwardHttp(idOrName: string, req: ForwardHttpRequest): Promise<ForwardHttpResponse>;
|
|
6549
6816
|
}
|
|
6550
6817
|
declare function createDeviceRegistry(pairing: PairingRegistry, hosts?: HostRegistry): DeviceRegistry;
|
|
6818
|
+
/** The host-side route `promptHostSession` forwards to — served by the HOST
|
|
6819
|
+
* daemon's `/device-prompt/:sessionId` (http-server.ts), gated by the same
|
|
6820
|
+
* host-scoped-pairing + `deviceSpawnAllow` two-gate as `/device-spawn/*`. */
|
|
6821
|
+
declare const DEVICE_PROMPT_PATH_PREFIX = "/device-prompt";
|
|
6822
|
+
interface PromptHostSessionInput {
|
|
6823
|
+
/**
|
|
6824
|
+
* The turn to deliver — same shapes local `agent_prompt` accepts: a
|
|
6825
|
+
* non-empty string, a content block object, or a non-empty array of
|
|
6826
|
+
* content blocks. Validated here (never forwarded ill-formed).
|
|
6827
|
+
*/
|
|
6828
|
+
prompt: unknown;
|
|
6829
|
+
/** When the host session is mid-turn, redirect instead of queueing
|
|
6830
|
+
* (mirrors local `agent_prompt`'s `interrupt`). Default false. */
|
|
6831
|
+
interrupt?: boolean;
|
|
6832
|
+
/** With a mid-turn session, jump the FRONT of the FIFO instead of the
|
|
6833
|
+
* back (mirrors local `agent_prompt`'s `force`). Default false. */
|
|
6834
|
+
force?: boolean;
|
|
6835
|
+
/** Block until the prompted turn drains (the session goes idle with an
|
|
6836
|
+
* empty queue) instead of fire-and-forget. Default false. */
|
|
6837
|
+
wait?: boolean;
|
|
6838
|
+
/** Poll cadence while `wait`ing, ms — clamped to [10, 10_000], default
|
|
6839
|
+
* 1_000. Each poll is a fresh E2E dial to the host, so don't set this
|
|
6840
|
+
* low in production; the clamp floor exists for tests. */
|
|
6841
|
+
pollMs?: number;
|
|
6842
|
+
/** Give up `wait`ing after this long (ms). 0 (default) = wait forever. */
|
|
6843
|
+
maxWaitMs?: number;
|
|
6844
|
+
/** Injectable delay for tests. Default a real setTimeout sleep. */
|
|
6845
|
+
sleep?: (ms: number) => Promise<void>;
|
|
6846
|
+
}
|
|
6847
|
+
interface PromptHostSessionResult {
|
|
6848
|
+
ok: boolean;
|
|
6849
|
+
/** The enqueue landed in the host session's FIFO (it was mid-turn) —
|
|
6850
|
+
* present on the fire-and-forget arm only. */
|
|
6851
|
+
pending?: boolean;
|
|
6852
|
+
queueId?: string;
|
|
6853
|
+
queuePosition?: number;
|
|
6854
|
+
/** Present on the `wait` arm: how long the turn took to drain. */
|
|
6855
|
+
waitedMs?: number;
|
|
6856
|
+
/** The host's HTTP status, when the enqueue itself failed. */
|
|
6857
|
+
status?: number;
|
|
6858
|
+
message?: string;
|
|
6859
|
+
}
|
|
6860
|
+
/**
|
|
6861
|
+
* Prompt a HOST device's session — the write counterpart of `device_sessions`
|
|
6862
|
+
* (BOOTSTRAP P4 item 1). Forwards `POST /device-prompt/:sessionId` over the
|
|
6863
|
+
* host's E2E channel (`HostRegistry.forwardHttp`, the same dial the read
|
|
6864
|
+
* verbs use); the host daemon, if it has opted in (`deviceSpawnAllow`) and
|
|
6865
|
+
* the pairing is host-scoped, calls its own `POST
|
|
6866
|
+
* /sessions/:id/prompt` — queueing rules identical to a local prompt.
|
|
6867
|
+
*
|
|
6868
|
+
* Fire-and-forget by default (the enqueue's 202 comes straight back);
|
|
6869
|
+
* `wait: true` then polls the host's `GET /sessions/:id` until the session
|
|
6870
|
+
* is idle with an empty queue (or dies, or `maxWaitMs` elapses). Never
|
|
6871
|
+
* silently serves stale data — a failed forward throws, there is no
|
|
6872
|
+
* snapshot fallback for a write.
|
|
6873
|
+
*/
|
|
6874
|
+
declare function promptHostSession(hosts: HostRegistry | undefined, target: string, sessionId: string, input: PromptHostSessionInput): Promise<PromptHostSessionResult>;
|
|
6551
6875
|
|
|
6552
6876
|
/**
|
|
6553
6877
|
* MCP tools over the device registry (DEVICES-PLAN PR-A/PR-C) — `device_list`
|
|
@@ -6569,6 +6893,12 @@ declare function createDeviceRegistry(pairing: PairingRegistry, hosts?: HostRegi
|
|
|
6569
6893
|
|
|
6570
6894
|
interface RegisterDeviceToolsOptions {
|
|
6571
6895
|
registry: DeviceRegistry;
|
|
6896
|
+
/** Optional — the underlying host registry (`device_add`'s), when wired.
|
|
6897
|
+
* `device_prompt` needs it directly: its wait-loop dials the host more
|
|
6898
|
+
* than once, which `DeviceRegistry.forwardHttp`'s snapshot fallback
|
|
6899
|
+
* would happily answer from cache. When absent, `device_prompt` is not
|
|
6900
|
+
* registered. */
|
|
6901
|
+
hosts?: HostRegistry;
|
|
6572
6902
|
/** Optional (SANDBOX-VISIBILITY-JOIN) — when wired, registers
|
|
6573
6903
|
* `join_token_create`/`join_token_list`/`join_token_revoke`. */
|
|
6574
6904
|
joinTokens?: JoinTokenRegistry;
|
|
@@ -7931,4 +8261,4 @@ interface GatewayHandle {
|
|
|
7931
8261
|
*/
|
|
7932
8262
|
declare function createGateway(opts: CreateGatewayOptions): Promise<GatewayHandle>;
|
|
7933
8263
|
|
|
7934
|
-
export { ActivityListFilter, type ActivityPolicyLister, type ActivityProjector, type ActivityProjectorRegistry, type ActivityProjectorSession, ActivityRecord, type ActivityWorkflowLister, AdapterAuthDescriptor, type AdapterCapabilitiesLister, type AdapterInstallResult, type AdapterListEntry, type AgentAdapterInstaller, type AgentAdapterLister, type AgentAdapterResolver, AgentSessionLike, AgentStreamEvent, type AttachSandboxOpts, type AttachSandboxResult, BUCKETS_ROOT, type BranchGcClass, type BranchGcCoverageView, type BranchGcHoldReason, type BranchGcKind, type BranchGcOutcomeView, type BranchGcPlanEntryView, type BranchGcPlanView, type BranchGcReclaimReason, type BranchGcResult, type BranchGcRunInput, type BranchGcRunner, type BranchGcStatus, type BranchGcSummaryView, type BranchGcTriageVerdict, type BranchGcVerdictInput, type BranchGcVerdictLookupInput, type BranchGcVerdictReader, type BranchGcVerdictRecordView, type BranchGcVerdictRecorder, type BrowserAdapterHandle, type BrowserAdapterInfo, type BrowserAdapterLister, type BrowserAdapterResolver, BuildHeartbeatAgent, CONTINUE_PROMPT_SOURCE, CanonicalPosture, type CapabilitiesInventory, type CapabilitiesInventoryMcp, type CapabilitiesInventorySkills, type CatalogModelsLister, CatalogModelsQuery, CatalogModelsResponse, type CatalogProviderModel, type CatalogProviderModelsQuery, type CatalogProviderModelsResponse, type CatalogProviderPricing, type ClaudeNativeRef, CompletionPolicySupervisor, type ComposeCandidate, ContextProfile, type ContinueInterruptedMode, type ContinueInterruptedOutcome, type ContinueInterruptedResult, type ContinueInterruptedSkipReason, type ContinueOnBootSummary, type ConversationIndexRecord, type ConversationNativeRef, type CostBudgetDecision, type CrashDetectSummary, type CrashReaperRegistry, type CreateGatewayOptions, type CreateJoinTokenInput, type CreateReviewRunnerOptions, type CreatedJoinToken, DEAD_SESSION_STATUSES, DEFAULT_ALWAYS_ON_TOOLS, DEFAULT_BUCKET, DEFAULT_CONTINUE_PROMPT, DEFAULT_HOST_LOAD_BUDGET_MS, DEFAULT_HOST_LOAD_THRESHOLDS, DEFAULT_ORCHESTRATOR_TOOLS, type DaemonReviewerHostDeps, DeclaredAdapterOption, type DeclaredAdapterPreset, DefaultsAdapterAuthConfig, type Device, type DeviceKind, type DeviceRegistry, type DeviceRole, type DiskLoad, type EagerResumeSummary, type EnableInput, type EnableResult, type FindComposeCandidateInput, type ForwardHttpRequest, type ForwardHttpResponse, GC_REAPABLE_STATES, type GatewayHandle, type GhRunner, HOSTS_VERSION, HOST_SCOPE_HEADER, type HarnessPreset, type HarnessPresetValidationDeps, HarnessPresetValidationError, type HarnessPresetsFile, type HermesNativeRef, type HostJoinMeta, type HostLoadCpu, type HostLoadDetail, type HostLoadMemory, type HostLoadReport, type HostLoadService, type HostLoadSwap, type HostLoadThresholds, type HostProbes, type HostProcess, type HostProcessOwner, type HostRecord, type HostRegistry, type HostRegistryDeps, type HostSessionRollup, type HostWarning, type HostWarningKind, INBOUND_PROVIDERS, type IdleReapSummary, type IdleReaperRegistry, type InboundEndpoint, type InboundEndpointStore, type InboundEndpointStoreOptions, type InboundEnqueuePrompt, type InboundIsSessionAlive, type InboundMessage, type InboundProvider, type InboundRestartSession, type InboundRouteMode, type InboundRouterDeps, type InboundRouterLog, type InboundSpawnForContact, type InboundWatcher, JOIN_TOKENS_VERSION, type JoinTokenRecord, type JoinTokenRegistry, type JoinTokenRegistryDeps, LEGACY_SESSIONS_FILE, type LedgerAnnotations, type LedgerEntry, type LedgerHostMeta, type LlmEndpointDescriptor, type LlmEndpointStatus, type LlmEndpointStatusReport, type LocatedConversation, type LocatedConversationByPath, MAX_AUTO_CONTINUE_ATTEMPTS, MCP_APP_BRIDGE_SCRIPT, type McpCredentialDeps, type MeasurableTool, type MeasuredToolEntry, MessageKind, MessageUrgency, type MigrationMarker, type ModelRolesInput, type ModelRolesOutput, type NormalizeInboundResult, type OpenPrResolver, type OrchestratorGatewayDeps, type OrchestratorInjection, type OrchestratorInjector, type OrchestratorInjectorDeps, type OrchestratorMcpServerFactory, type OrchestratorScope, type OrphanReaperRegistry, POSTURE_NATIVE_ALIASES, POSTURE_PREAMBLES, PolicyRunState, Posture, type PostureResolution, PrLookupError, type PrLookupErrorCode, PrResolvedState, type PrStateResolver, type PrStatusSnapshot, type PresetInfo, type ProjectBrowserToolsOptions, type ProjectedBrowserTool, type ProjectedBrowserTools, type ProjectedProvider, type ProjectedToolResult, ProvisionInFlight, QuotaReadableProfile, type RegisterBrainToolsOptions, type RegisterDeviceToolsOptions, type RegisterPairingToolsOptions, type RegisterReviewToolsOptions, type RegisterWebSearchToolsOptions, RemainingQuotaReader, type RemoteStatus, type ResolveNativeLinkInput, ResolvedAuthSpec, ResolvedModelRole, type ReuseResolution, type ReviewComposeContext, type ReviewLedger, type ReviewLedgerFilter, type ReviewRun, type ReviewRunInput, type ReviewRunStatus, type ReviewRunner, type ReviewSignature, type ReviewSigningKey, type ReviewerRunResult, type ReviewerSessionHost, type RouteAwareLaunchConfig, type RouteAwareLaunchConfigInput, RouteSpec, type RuntimeMeta, SIGN_NAMESPACE, type SandboxAdapterInfo, type SandboxConnectionDescriptor, type SandboxGcCandidate, type SandboxGcProviderHandle, type SandboxGcReapDeps, type SandboxGcReapResult, type SandboxLedgerEntry, type SandboxLedgerState, type SandboxProviderCapabilities, type SandboxProviderHandle, type SandboxProviderLister, type SandboxProviderResolver, type SandboxReconcileDeps, type SandboxReconcileProviderHandle, type SandboxReconcileResult, type SandboxReconcileRow, type SandboxReconcileVerdict, type ScopeTokenRegistry, type SentinelMatchClause, type SentinelSpec, type SentinelStatus, type SentinelTarget, type SentinelUntil, type SentinelView, SessionDescriptor, SessionEndReason, SessionMessage, type SessionMessageSentRecord, type SessionObserver, SessionUsage, type SessionUsageWithSubtree, type SessionWaitEvent, type SessionWaitResult, SessionsRegistry, type SkillPackInventoryEntry, type SkillsByHarnessEntry, SpawnDefaultsConfig, type StallWatchdogRegistry, type StallWatchdogSummary, type SubtreeChildUsage, type SubtreeUsageTotals, TaskLedger, type ToolListMeasurement, type TransmitterBinding, type TransmitterBindingStore, type TunnelDescriptor, type TunnelProvider, type TunnelStatus, UsageReadContext, UsageReadResult, UsageRollup, UsageSnapshotRecord, UserPreset, type VerifySignedAttestationResult, type WatcherDescriptor, type WatcherStartInput, type WebSearchInput, type WebSearchOutput, type WebSearchResult, type WorkspaceBrainSubscriber, type WorkspaceBrainSubscriberOptions, type WorkspaceBrains, WorkspaceFs, WorktreeAutoReclaimer, WorktreeField, type WorktreeGcClass, type WorktreeGcOutcomeView, type WorktreeGcPlanEntryView, type WorktreeGcReclaimReason, type WorktreeGcResult, type WorktreeGcRunInput, type WorktreeGcRunner, WorktreeIsolationMode, WorktreeProvisioner, type WorktreeStatusLister, type WorktreeStatusView, addHarnessPreset, allowedSignersLine, appendConversationRecord, attachSandbox, bucketDir, bucketSessionsFile, bucketTranscriptDir, buildCatalogProviderModels, buildHostLoadReport, buildMcpConfigSnippet, buildRouteAwareLaunchConfig, canonicalForModeId, claudeProjectSlug, collectGcCandidates, collectHostSample, composeSessionObservers, composedFromRangeSha, computeHostWarnings, continueInterruptedSessions, continueSkipReason, conversationIndexPath, createActivityProjector, createDaemonReviewerHost, createDefaultHostProbes, createDeviceRegistry, createFileStepCache, createGateway, createHostLoadService, createHostRegistry, createInboundEndpointStore, createJoinTokenRegistry, createOrchestratorInjector, createOrchestratorMcpServerFactory, createPrProvenanceReconciler, createReviewLaneExecutor, createReviewLedger, createReviewPackLoader, createReviewRunner, createScopeTokenRegistry, createWorkspaceBrainSubscriber, createWorkspaceBrains, daemonRegistryDir, declaredPresetToProviderPreset, defaultBrowserAdapterIds, defaultBrowserAdapterResolution, defaultReviewKeysDir, defaultReviewLedgerRoot, defaultReviewPackCacheDir, defineBraveSearchHttpDriver, defineSerperHttpDriver, describeOwner, enrichRollupWithProviderQuota, enrichWithRemainingQuota, ensureReviewSigningKey, evaluateCostBudget, execGh, extractHelpSection, fetchPrStatus, fileExists, findComposeCandidate, findConversationRecord, findNativeMode, findPrForCommit, formatToolCall, formatToolResult, getDefaultHarnessPreset, getHarnessPreset, getHostLoadService, getMcpCredentialDeps, getToolHelp, githubRepoOf, harnessPresetsPath, hostPlaceholders, injectMcpAppBridge, isAgentCliAuthConfigured, isSafeBucketSlug, listBuckets, listHarnessPresets, listPresets, listToolHelpTopics, loadHarnessPresets, loadWorkspaceModelRoles, locateConversationByNativePath, locateConversationBySessionId, makeBrowserAdapterLister, makeSandboxCredsStore, makeSandboxResolver, measureTool, measureToolList, migrateLegacySessionsFile, migrationMarkerPath, monitorPolicyWait, monitorSessionWait, narrowOrchestratorTools, normalizeInbound, normalizeModeId, normalizeRemote, parsePrUrl, prHeadSha, projectBrowserTools, readConversationIndex, readDaemonRegistry, readRegisteredSlugs, readRuntimeMeta, readSandboxLedger, readSessionForBrain, readUsageSnapshots, reapGcEntry, reapOrphanedDescendants, reconcileSandboxLedger, recordSandboxBoot, recordSandboxLiveness, recordSandboxOrigin, recordSandboxState, registerBrainTools, registerBuiltinRoutes, registerDeviceTools, registerPairingTools, registerReviewTools, registerSandboxAttachTool, registerWebSearchTools, removeHarnessPreset, removeSandboxLedgerEntry, repoSlug, resolveBucketSlug, resolveEffectiveLlmEndpointFlag, resolveNativeLink, resolvePosture, resolvePrincipal, resolveReuseFromLedger, resolveReviewerPreset, rollupSessionSubtree, runContinueOnBootPass, runCrashDetectPass, runEagerResumePass, runIdleReapPass, runShellLane, runStallWatchdogPass, sandboxLedgerPath, setDefaultPreset, setMcpCredentialDeps, signAttestation, sweepStaleDaemonRegistry, sweepStaleRuntimeMetas, toWorktreeStatusView, unlinkDaemonRegistryEntry, unlinkRuntimeMeta, updateHarnessPreset, upsertSandboxLedger, verifyInboundSignature, verifySignedAttestation, webSearchTool, withPr, withPrStatus, writeDaemonRegistryEntry };
|
|
8264
|
+
export { ActivityListFilter, type ActivityPolicyLister, type ActivityProjector, type ActivityProjectorRegistry, type ActivityProjectorSession, ActivityRecord, type ActivityWorkflowLister, AdapterAuthDescriptor, type AdapterCapabilitiesLister, type AdapterInstallResult, type AdapterListEntry, type AgentAdapterInstaller, type AgentAdapterLister, type AgentAdapterResolver, AgentSessionLike, AgentStreamEvent, type AttachSandboxOpts, type AttachSandboxResult, BUCKETS_ROOT, type BranchGcClass, type BranchGcCoverageView, type BranchGcHoldReason, type BranchGcKind, type BranchGcOutcomeView, type BranchGcPlanEntryView, type BranchGcPlanView, type BranchGcReclaimReason, type BranchGcResult, type BranchGcRunInput, type BranchGcRunner, type BranchGcStatus, type BranchGcSummaryView, type BranchGcTriageVerdict, type BranchGcVerdictInput, type BranchGcVerdictLookupInput, type BranchGcVerdictReader, type BranchGcVerdictRecordView, type BranchGcVerdictRecorder, type BrowserAdapterHandle, type BrowserAdapterInfo, type BrowserAdapterLister, type BrowserAdapterResolver, BuildHeartbeatAgent, CLAMP_LIMIT_BYTES, CONTINUE_PROMPT_SOURCE, CanonicalPosture, type CapabilitiesInventory, type CapabilitiesInventoryMcp, type CapabilitiesInventorySkills, type CatalogModelsLister, CatalogModelsQuery, CatalogModelsResponse, type CatalogProviderModel, type CatalogProviderModelsQuery, type CatalogProviderModelsResponse, type CatalogProviderPricing, type ChallengeFailureReason, type ChallengeOutcome, type ClaudeNativeRef, CompletionPolicySupervisor, type ComposeCandidate, ContextProfile, type ContinueInterruptedMode, type ContinueInterruptedOutcome, type ContinueInterruptedResult, type ContinueInterruptedSkipReason, type ContinueOnBootSummary, type ConversationIndexRecord, type ConversationNativeRef, type CostBudgetDecision, type CrashDetectSummary, type CrashReaperRegistry, type CreateGatewayOptions, type CreateJoinTokenInput, type CreateReviewRunnerOptions, type CreatedJoinToken, DEAD_SESSION_STATUSES, DEFAULT_ALWAYS_ON_TOOLS, DEFAULT_BUCKET, DEFAULT_CONTINUE_PROMPT, DEFAULT_HOST_LOAD_BUDGET_MS, DEFAULT_HOST_LOAD_THRESHOLDS, DEFAULT_ORCHESTRATOR_TOOLS, DEVICE_PROMPT_PATH_PREFIX, type DaemonReviewerHostDeps, DeclaredAdapterOption, type DeclaredAdapterPreset, DefaultsAdapterAuthConfig, type DeliveryOutcome, type DeliveryReplay, type DeliveryState, type Device, type DeviceKind, type DeviceRegistry, type DeviceRole, type DiskLoad, type EagerResumeSummary, type EgressDispatcher, type EnableInput, type EnableResult, type FindComposeCandidateInput, type ForwardHttpRequest, type ForwardHttpResponse, GC_REAPABLE_STATES, type GatewayHandle, type GhRunner, HOSTS_VERSION, HOST_HANDSHAKE_REMEDIATION_HINT, HOST_SCOPE_HEADER, type HarnessPreset, type HarnessPresetValidationDeps, HarnessPresetValidationError, type HarnessPresetsFile, type HermesNativeRef, type HostJoinMeta, type HostLoadCpu, type HostLoadDetail, type HostLoadMemory, type HostLoadReport, type HostLoadService, type HostLoadSwap, type HostLoadThresholds, type HostProbes, type HostProcess, type HostProcessOwner, type HostRecord, type HostRegistry, type HostRegistryDeps, type HostSessionRollup, type HostWarning, type HostWarningKind, INBOUND_PROVIDERS, type IdleReapSummary, type IdleReaperRegistry, type InboundEndpoint, type InboundEndpointStore, type InboundEndpointStoreOptions, type InboundEnqueuePrompt, type InboundIsSessionAlive, type InboundMessage, type InboundProvider, type InboundRestartSession, type InboundRouteMode, type InboundRouterDeps, type InboundRouterLog, type InboundSpawnForContact, type InboundWatcher, JOIN_TOKENS_VERSION, type JoinTokenRecord, type JoinTokenRegistry, type JoinTokenRegistryDeps, LEGACY_SESSIONS_FILE, type LedgerAnnotations, type LedgerEntry, type LedgerHostMeta, type LlmEndpointDescriptor, type LlmEndpointStatus, type LlmEndpointStatusReport, type LocatedConversation, type LocatedConversationByPath, MAX_ATTEMPTS, MAX_AUTO_CONTINUE_ATTEMPTS, MCP_APP_BRIDGE_SCRIPT, type McpCredentialDeps, type McpEventEnvelope, type MeasurableTool, type MeasuredToolEntry, MessageKind, MessageUrgency, type MigrationMarker, type ModelRolesInput, type ModelRolesOutput, type NormalizeInboundResult, type OpenPrResolver, type OrchestratorGatewayDeps, type OrchestratorInjection, type OrchestratorInjector, type OrchestratorInjectorDeps, type OrchestratorMcpServerFactory, type OrchestratorScope, type OrphanReaperRegistry, POSTURE_NATIVE_ALIASES, POSTURE_PREAMBLES, PolicyRunState, Posture, type PostureResolution, PrLookupError, type PrLookupErrorCode, PrResolvedState, type PrStateResolver, type PrStatusSnapshot, type PresetInfo, type ProjectBrowserToolsOptions, type ProjectedBrowserTool, type ProjectedBrowserTools, type ProjectedProvider, type ProjectedToolResult, type PromptHostSessionInput, type PromptHostSessionResult, ProvisionInFlight, QuotaReadableProfile, type RegisterBrainToolsOptions, type RegisterDeviceToolsOptions, type RegisterPairingToolsOptions, type RegisterReviewToolsOptions, type RegisterWebSearchToolsOptions, RemainingQuotaReader, type RemoteStatus, type ResolveNativeLinkInput, ResolvedAuthSpec, ResolvedModelRole, type ReuseResolution, type ReviewComposeContext, type ReviewLedger, type ReviewLedgerFilter, type ReviewRun, type ReviewRunInput, type ReviewRunStatus, type ReviewRunner, type ReviewSignature, type ReviewSigningKey, type ReviewerRunResult, type ReviewerSessionHost, type RouteAwareLaunchConfig, type RouteAwareLaunchConfigInput, RouteSpec, type RuntimeMeta, SIGN_NAMESPACE, type SandboxAdapterInfo, type SandboxConnectionDescriptor, type SandboxGcCandidate, type SandboxGcProviderHandle, type SandboxGcReapDeps, type SandboxGcReapResult, type SandboxLedgerEntry, type SandboxLedgerState, type SandboxProviderCapabilities, type SandboxProviderHandle, type SandboxProviderLister, type SandboxProviderResolver, type SandboxReconcileDeps, type SandboxReconcileProviderHandle, type SandboxReconcileResult, type SandboxReconcileRow, type SandboxReconcileVerdict, type ScopeTokenRegistry, type SentinelMatchClause, type SentinelSpec, type SentinelStatus, type SentinelTarget, type SentinelUntil, type SentinelView, SessionDescriptor, SessionEndReason, SessionMessage, type SessionMessageSentRecord, type SessionObserver, SessionUsage, type SessionUsageWithSubtree, type SessionWaitEvent, type SessionWaitResult, SessionsRegistry, type SkillPackInventoryEntry, type SkillsByHarnessEntry, SpawnDefaultsConfig, SsrfFetchError, type SsrfFetchInit, type SsrfFetchReason, type SsrfFetchResult, type StallWatchdogRegistry, type StallWatchdogSummary, type SubtreeChildUsage, type SubtreeUsageTotals, TaskLedger, type ToolListMeasurement, type TransmitterBinding, type TransmitterBindingStore, type TunnelDescriptor, type TunnelProvider, type TunnelStatus, UsageReadContext, UsageReadResult, UsageRollup, UsageSnapshotRecord, UserPreset, type VerifyCallbackInput, type VerifySignedAttestationResult, type WatcherDescriptor, type WatcherStartInput, type WebSearchInput, type WebSearchOutput, type WebSearchResult, type WebhookSignInput, type WebhookSignatureHeaders, type WorkspaceBrainSubscriber, type WorkspaceBrainSubscriberOptions, type WorkspaceBrains, WorkspaceFs, WorktreeAutoReclaimer, WorktreeField, type WorktreeGcClass, type WorktreeGcOutcomeView, type WorktreeGcPlanEntryView, type WorktreeGcReclaimReason, type WorktreeGcResult, type WorktreeGcRunInput, type WorktreeGcRunner, WorktreeIsolationMode, WorktreeProvisioner, type WorktreeStatusLister, type WorktreeStatusView, addHarnessPreset, allowedSignersLine, appendConversationRecord, attachSandbox, bucketDir, bucketSessionsFile, bucketTranscriptDir, buildCatalogProviderModels, buildHostLoadReport, buildMcpConfigSnippet, buildRouteAwareLaunchConfig, canonicalForModeId, challengeCacheSize, challengeReasonForSsrf, claudeProjectSlug, collectGcCandidates, collectHostSample, composeSessionObservers, composedFromRangeSha, computeHostWarnings, continueInterruptedSessions, continueSkipReason, conversationIndexPath, createActivityProjector, createDaemonReviewerHost, createDefaultHostProbes, createDeviceRegistry, createFileStepCache, createGateway, createHostLoadService, createHostRegistry, createInboundEndpointStore, createJoinTokenRegistry, createOrchestratorInjector, createOrchestratorMcpServerFactory, createPrProvenanceReconciler, createReviewLaneExecutor, createReviewLedger, createReviewPackLoader, createReviewRunner, createScopeTokenRegistry, createWorkspaceBrainSubscriber, createWorkspaceBrains, daemonRegistryDir, declaredPresetToProviderPreset, decodeWhsecSecret, defaultBrowserAdapterIds, defaultBrowserAdapterResolution, defaultReviewKeysDir, defaultReviewLedgerRoot, defaultReviewPackCacheDir, defineBraveSearchHttpDriver, defineSerperHttpDriver, deliverEventEnvelope, deliveryBackoffDelay, describeOwner, encodeWhsecSecret, enrichRollupWithProviderQuota, enrichWithRemainingQuota, ensureReviewSigningKey, envelopeClampedBytes, evaluateCostBudget, execGh, extractHelpSection, fetchPrStatus, fileExists, findComposeCandidate, findConversationRecord, findNativeMode, findPrForCommit, formatToolCall, formatToolResult, getDefaultHarnessPreset, getHarnessPreset, getHostLoadService, getMcpCredentialDeps, getToolHelp, githubRepoOf, harnessPresetsPath, hostPlaceholders, injectMcpAppBridge, isAgentCliAuthConfigured, isPubliclyRoutable, isSafeBucketSlug, listBuckets, listHarnessPresets, listPresets, listToolHelpTopics, loadHarnessPresets, loadWorkspaceModelRoles, locateConversationByNativePath, locateConversationBySessionId, makeBrowserAdapterLister, makeSandboxCredsStore, makeSandboxResolver, measureTool, measureToolList, migrateLegacySessionsFile, migrationMarkerPath, monitorPolicyWait, monitorSessionWait, narrowOrchestratorTools, normalizeCallbackUrl, normalizeInbound, normalizeModeId, normalizeRemote, parsePrUrl, prHeadSha, projectBrowserTools, promptHostSession, readConversationIndex, readDaemonRegistry, readHostsSnapshot, readRegisteredSlugs, readRuntimeMeta, readSandboxLedger, readSessionForBrain, readUsageSnapshots, reapGcEntry, reapOrphanedDescendants, reconcileSandboxLedger, recordSandboxBoot, recordSandboxLiveness, recordSandboxOrigin, recordSandboxState, registerBrainTools, registerBuiltinRoutes, registerDeviceTools, registerPairingTools, registerReviewTools, registerSandboxAttachTool, registerWebSearchTools, removeHarnessPreset, removeSandboxLedgerEntry, repoSlug, resetChallengeCacheForTests, resolveBucketSlug, resolveEffectiveLlmEndpointFlag, resolveNativeLink, resolvePosture, resolvePrincipal, resolveReuseFromLedger, resolveReviewerPreset, rollupSessionSubtree, runContinueOnBootPass, runCrashDetectPass, runEagerResumePass, runIdleReapPass, runShellLane, runStallWatchdogPass, sandboxLedgerPath, serializeEnvelope, setDefaultPreset, setEgressDispatcherForTests, setMcpCredentialDeps, signAttestation, signWebhook, ssrfFetch, sweepStaleDaemonRegistry, sweepStaleRuntimeMetas, toWorktreeStatusView, unlinkDaemonRegistryEntry, unlinkRuntimeMeta, updateHarnessPreset, upsertSandboxLedger, verifyCallback, verifyInboundSignature, verifySignedAttestation, webSearchTool, withPr, withPrStatus, writeDaemonRegistryEntry };
|