@bivy/bivy 0.10.1-staging.375 → 0.10.1-staging.376
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/credentials/api.js +1 -2
- package/dist/credentials/document.js +0 -2
- package/dist/credentials/index.js +1 -1
- package/dist/credentials/presets.js +1 -1
- package/dist/credentials/records.js +0 -2
- package/dist/server.js +1 -1
- package/dist/session/event-sequencer.js +1 -1
- package/dist/session/turn-watchdog-runtime.js +1 -2
- package/package.json +1 -1
package/dist/credentials/api.js
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
// vault (credential-store.ts) with zero Pi involvement, so the service compiles
|
|
9
9
|
// and tests without Pi. Provider catalog data is likewise injected:
|
|
10
10
|
// `joinProviderCatalog` receives Bivy's baseline overlaid with optional live
|
|
11
|
-
// runtime metadata by the thin `runtime/provider-catalog.ts` bridge.
|
|
12
|
-
// docs/credentials-service-plan.md §3.1.
|
|
11
|
+
// runtime metadata by the thin `runtime/provider-catalog.ts` bridge.
|
|
13
12
|
import { createCredentialVault } from "./store.js";
|
|
14
13
|
import { inferReferenceBackend, normalizeLabel, defaultSyncFor, DEFAULT_LABEL, } from "./records.js";
|
|
15
14
|
import { loadPresets, loadIngestPolicy, defaultPresetsPath, setActivePreset as setActivePresetFile, setPresetMapping as setPresetMappingFile, setIngestPolicy as setIngestPolicyFile, } from "./presets.js";
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
// replacing v2's one-`StoredCredential`-per-provider map. The merge rules are the
|
|
13
13
|
// v2 rules (see credential-store.ts history) re-keyed to operate per record:
|
|
14
14
|
// merge-never-destroy, freshest-OAuth-wins, rotation-safe, tombstone-newer-wins.
|
|
15
|
-
//
|
|
16
|
-
// See docs/credentials-service-plan.md §3.2 / §8.
|
|
17
15
|
import { credKey, normalizeProvider, normalizeLabel, inferReferenceBackend, DEFAULT_LABEL, } from "./records.js";
|
|
18
16
|
/**
|
|
19
17
|
* Is this record a command reference? Keys on the `ref` PREFIX (the authoritative
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// Phase 1 (this PR) is additive: the new pure record model ships here, and the
|
|
12
12
|
// existing credential surface is re-exported so new code can already import from
|
|
13
13
|
// `src/credentials/`. Later phases move the implementations under this directory
|
|
14
|
-
// and wire selection into the live path.
|
|
14
|
+
// and wire selection into the live path.
|
|
15
15
|
// --- The record model + selection (new, pure) ------------------------------
|
|
16
16
|
export { DEFAULT_LABEL, normalizeProvider, normalizeLabel, credKey, parseCredKey, agentNativeLabel, defaultSyncFor, inferReferenceBackend, resolveCredential, missingPresetLabels, } from "./records.js";
|
|
17
17
|
// --- The v3 document engine: schema, migration, merge (new, pure) -----------
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// Validation is hand-rolled (no schema library) so this module stays pure and
|
|
10
10
|
// dependency-free — it imports only the record model — and a malformed config
|
|
11
11
|
// degrades to "no presets" (the implicit default) rather than breaking the
|
|
12
|
-
// credential path.
|
|
12
|
+
// credential path.
|
|
13
13
|
import fs from "node:fs";
|
|
14
14
|
import path from "node:path";
|
|
15
15
|
import { normalizeProvider, normalizeLabel } from "./records.js";
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
// a pure function over records + presets that returns BOTH the chosen record and
|
|
12
12
|
// a human-readable reason — silent guesses are a footgun, so ambiguity returns
|
|
13
13
|
// undefined and the caller asks the user to choose.
|
|
14
|
-
//
|
|
15
|
-
// See docs/credentials-service-plan.md.
|
|
16
14
|
/** The label a single-credential (zero-config) user never has to think about. */
|
|
17
15
|
export const DEFAULT_LABEL = "default";
|
|
18
16
|
/** Normalize a provider id the way every path expects (trimmed, lowercased). */
|
package/dist/server.js
CHANGED
|
@@ -1976,7 +1976,7 @@ const RELAY_COMMANDS = {
|
|
|
1976
1976
|
// Live-stream gap recovery: replay the session.events a client missed after the
|
|
1977
1977
|
// last seq it holds, or tell it to full-resync (mode:"reset") when the ring has
|
|
1978
1978
|
// evicted past that point. Answers only the caller (ctx.reply); other clients
|
|
1979
|
-
// have their own cursors
|
|
1979
|
+
// have their own cursors.
|
|
1980
1980
|
"session.replay"(msg, ctx) {
|
|
1981
1981
|
const sessionId = typeof msg.sessionId === "string" ? msg.sessionId : "";
|
|
1982
1982
|
if (!sessionId)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright (c) 2026 Petter André Sjulstad
|
|
3
3
|
//
|
|
4
4
|
// Per-session event sequencing + a bounded replay buffer — the node side of
|
|
5
|
-
// lossless live delivery
|
|
5
|
+
// lossless live delivery.
|
|
6
6
|
//
|
|
7
7
|
// Today the node→relay uplink (relay-client.ts sendEvent) DROPS a session event
|
|
8
8
|
// whenever its socket isn't OPEN, and the relay→client hop can lose a chunked
|
|
@@ -81,7 +81,6 @@ export function createTurnWatchdog(deps) {
|
|
|
81
81
|
// Aggregate turn-recovery counters, keyed `"<runtimeId>:<trigger>"`. A privacy-
|
|
82
82
|
// safe histogram (counts only, no session content) surfaced in the redacted
|
|
83
83
|
// /api/diagnostics health bag so operators can see which runtime hangs and how.
|
|
84
|
-
// See docs/session-reliability-plan.md (Phase 1).
|
|
85
84
|
const turnRecoveryCounts = new Map();
|
|
86
85
|
const recoveryTargetMs = 10_000;
|
|
87
86
|
const turnRecoveryDurations = new Map();
|
|
@@ -118,7 +117,7 @@ export function createTurnWatchdog(deps) {
|
|
|
118
117
|
console.warn(`[turn-watchdog] recovering stuck session ${record.id} (runtime=${record.runtimeId} trigger=${trigger}): ${reason}`);
|
|
119
118
|
// Attribute the recovery so operators can see WHICH runtime/transport hangs and
|
|
120
119
|
// how (subprocess died vs went silent vs hit the wall-clock cap) instead of
|
|
121
|
-
// losing it to a log line
|
|
120
|
+
// losing it to a log line.
|
|
122
121
|
recordTurnRecovery(record.runtimeId, trigger);
|
|
123
122
|
deps.broadcast({
|
|
124
123
|
type: "session.diagnostic",
|
package/package.json
CHANGED