instar 1.3.565 → 1.3.567

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.
Files changed (55) hide show
  1. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  2. package/dist/config/ConfigDefaults.js +16 -1
  3. package/dist/config/ConfigDefaults.js.map +1 -1
  4. package/dist/core/BitwardenProvider.d.ts +8 -0
  5. package/dist/core/BitwardenProvider.d.ts.map +1 -1
  6. package/dist/core/BitwardenProvider.js +10 -0
  7. package/dist/core/BitwardenProvider.js.map +1 -1
  8. package/dist/core/PostUpdateMigrator.d.ts +13 -0
  9. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  10. package/dist/core/PostUpdateMigrator.js +55 -0
  11. package/dist/core/PostUpdateMigrator.js.map +1 -1
  12. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  13. package/dist/core/devGatedFeatures.js +12 -0
  14. package/dist/core/devGatedFeatures.js.map +1 -1
  15. package/dist/core/types.d.ts +42 -0
  16. package/dist/core/types.d.ts.map +1 -1
  17. package/dist/core/types.js.map +1 -1
  18. package/dist/lifeline/ServerSupervisor.d.ts +9 -0
  19. package/dist/lifeline/ServerSupervisor.d.ts.map +1 -1
  20. package/dist/lifeline/ServerSupervisor.js +174 -84
  21. package/dist/lifeline/ServerSupervisor.js.map +1 -1
  22. package/dist/monitoring/BlockerLedger.d.ts +43 -2
  23. package/dist/monitoring/BlockerLedger.d.ts.map +1 -1
  24. package/dist/monitoring/BlockerLedger.js +90 -5
  25. package/dist/monitoring/BlockerLedger.js.map +1 -1
  26. package/dist/monitoring/DurableVaultSession.d.ts +91 -0
  27. package/dist/monitoring/DurableVaultSession.d.ts.map +1 -0
  28. package/dist/monitoring/DurableVaultSession.js +145 -0
  29. package/dist/monitoring/DurableVaultSession.js.map +1 -0
  30. package/dist/monitoring/SelfUnblockChecklist.d.ts +281 -0
  31. package/dist/monitoring/SelfUnblockChecklist.d.ts.map +1 -0
  32. package/dist/monitoring/SelfUnblockChecklist.js +433 -0
  33. package/dist/monitoring/SelfUnblockChecklist.js.map +1 -0
  34. package/dist/monitoring/SelfUnblockProbeProviders.d.ts +116 -0
  35. package/dist/monitoring/SelfUnblockProbeProviders.d.ts.map +1 -0
  36. package/dist/monitoring/SelfUnblockProbeProviders.js +286 -0
  37. package/dist/monitoring/SelfUnblockProbeProviders.js.map +1 -0
  38. package/dist/scaffold/templates.d.ts.map +1 -1
  39. package/dist/scaffold/templates.js +8 -0
  40. package/dist/scaffold/templates.js.map +1 -1
  41. package/dist/server/AgentServer.d.ts +16 -0
  42. package/dist/server/AgentServer.d.ts.map +1 -1
  43. package/dist/server/AgentServer.js +106 -0
  44. package/dist/server/AgentServer.js.map +1 -1
  45. package/dist/server/routes.d.ts +10 -0
  46. package/dist/server/routes.d.ts.map +1 -1
  47. package/dist/server/routes.js +117 -0
  48. package/dist/server/routes.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/data/builtin-manifest.json +64 -64
  51. package/src/scaffold/templates.ts +8 -0
  52. package/upgrades/1.3.566.md +104 -0
  53. package/upgrades/1.3.567.md +39 -0
  54. package/upgrades/side-effects/self-unblock-before-escalating.md +258 -0
  55. package/upgrades/side-effects/supervisor-respawn-guarantee.md +61 -0
@@ -34,6 +34,7 @@
34
34
  *
35
35
  * Spec: docs/specs/AUTONOMY-PRINCIPLES-ENFORCEMENT-SPEC.md (Piece 1).
36
36
  */
37
+ import type { SelfUnblockRunLoader } from './SelfUnblockChecklist.js';
37
38
  /** The gated pipeline states. Order matters — `advance` walks them linearly. */
38
39
  export declare const BLOCKER_PIPELINE: readonly BlockerNonTerminalState[];
39
40
  export type BlockerNonTerminalState = 'candidate' | 'authority-checked' | 'access-requested' | 'dry-run' | 'live-run';
@@ -147,6 +148,16 @@ export interface BlockerLedgerOptions {
147
148
  stateDir: string;
148
149
  /** The Tier-1 settle authority (B17). Optional — when absent, a true-blocker settle is refused. */
149
150
  settleAuthority?: SettleAuthority;
151
+ /**
152
+ * The Self-Unblock checklist run store ("Self-Unblock Before Escalating", §5.1).
153
+ * OPTIONAL — when injected, the feature is ENABLED: a true-blocker settle then
154
+ * REQUIRES a `selfUnblockRunId`, BlockerLedger LOADS + verifies the persisted
155
+ * run, and DERIVES the `failedAttempt` from it (a caller-embedded failedAttempt
156
+ * with no valid persisted run is HARD-rejected `missing_failed_attempt`). When
157
+ * absent (dark default), the existing caller-supplied `failedAttempt` path is
158
+ * unchanged. Spec: docs/specs/self-unblock-before-escalating.md.
159
+ */
160
+ selfUnblockRunStore?: SelfUnblockRunLoader;
150
161
  /** Move terminal entries older than this many days to the archive (default 30). */
151
162
  archiveAfterDays?: number;
152
163
  /** Default days until a settled true-blocker is reopened for a re-walk (default 30). */
@@ -181,6 +192,8 @@ export declare class BlockerLedger {
181
192
  private readonly archivePath;
182
193
  private readonly auditPath;
183
194
  private readonly settleAuthority?;
195
+ /** When set, the Self-Unblock feature is ON: settle derives the failed attempt from a verified run. */
196
+ private readonly selfUnblockRunStore?;
184
197
  private readonly archiveAfterDays;
185
198
  private readonly recheckAfterDays;
186
199
  private readonly maxNoEvidenceResettles;
@@ -257,12 +270,24 @@ export declare class BlockerLedger {
257
270
  kind: 'true-blocker';
258
271
  reasonKind: TrueBlockerKind;
259
272
  rebuttal: string;
260
- /** The mandatory FAILED work-attempt. `at` defaults to now; it MUST precede the access-request. */
261
- failedAttempt: {
273
+ /**
274
+ * The mandatory FAILED work-attempt. `at` defaults to now; it MUST precede
275
+ * the access-request. When the Self-Unblock run store is configured, this
276
+ * is DERIVED from the verified persisted run (a caller-embedded value with
277
+ * no valid `selfUnblockRunId` is HARD-rejected) — see `selfUnblockRunId`.
278
+ */
279
+ failedAttempt?: {
262
280
  type: 'self-fetch' | 'dry-run';
263
281
  detail: string;
264
282
  at?: string;
265
283
  };
284
+ /**
285
+ * Reference to the persisted Self-Unblock checklist run that PRODUCED the
286
+ * failed attempt ("Self-Unblock Before Escalating", §5.1). REQUIRED when the
287
+ * run store is configured; ignored when it is not. BlockerLedger loads +
288
+ * verifies the run and derives the `failedAttempt` from it.
289
+ */
290
+ selfUnblockRunId?: string;
266
291
  /** The access-request to the user — recorded AFTER the failed attempt. */
267
292
  accessRequest: {
268
293
  messageRef: string;
@@ -283,6 +308,22 @@ export declare class BlockerLedger {
283
308
  */
284
309
  archiveOld(now?: Date): Promise<number>;
285
310
  private assertNotTerminal;
311
+ /**
312
+ * Verify a loaded Self-Unblock checklist run represents a GENUINE exhaustion
313
+ * before its derived attempt can settle a true-blocker ("Self-Unblock Before
314
+ * Escalating", §5.1). A run is valid iff it:
315
+ * - exists (the caller referenced a runId the runner actually produced),
316
+ * - is well-formed (a non-empty array of probe results + a completedAt),
317
+ * - matches the required attempt TYPE (a self-fetch-kind blocker needs a
318
+ * self-fetch run; a dry-run-kind needs a dry-run run),
319
+ * - is a genuine exhaustion: EVERY probe came up `holdsRelevantCred: false`
320
+ * (`exhausted: true`). A run that found a relevant credential is NOT an
321
+ * exhaustion — the agent should self-unblock with it, not escalate.
322
+ *
323
+ * Returns `{ ok: true, detail }` with a synthesized human summary of the probed
324
+ * sources, or `{ ok: false, reason }`.
325
+ */
326
+ private verifySelfUnblockRun;
286
327
  /** Parse a caller-supplied ISO timestamp; return undefined if absent/invalid. */
287
328
  private normalizeIso;
288
329
  private computeRecheckAfter;
@@ -1 +1 @@
1
- {"version":3,"file":"BlockerLedger.d.ts","sourceRoot":"","sources":["../../src/monitoring/BlockerLedger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockerLedger.d.ts","sourceRoot":"","sources":["../../src/monitoring/BlockerLedger.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,8 @@ export class BlockerLedger {
99
99
  archivePath;
100
100
  auditPath;
101
101
  settleAuthority;
102
+ /** When set, the Self-Unblock feature is ON: settle derives the failed attempt from a verified run. */
103
+ selfUnblockRunStore;
102
104
  archiveAfterDays;
103
105
  recheckAfterDays;
104
106
  maxNoEvidenceResettles;
@@ -115,6 +117,7 @@ export class BlockerLedger {
115
117
  this.archivePath = path.join(opts.stateDir, 'state', 'blocker-ledger-archive.json');
116
118
  this.auditPath = path.join(opts.stateDir, '..', 'logs', 'blocker-decisions.jsonl');
117
119
  this.settleAuthority = opts.settleAuthority;
120
+ this.selfUnblockRunStore = opts.selfUnblockRunStore;
118
121
  this.archiveAfterDays = opts.archiveAfterDays ?? DEFAULT_ARCHIVE_AFTER_DAYS;
119
122
  this.recheckAfterDays = opts.recheckAfterDays ?? DEFAULT_RECHECK_AFTER_DAYS;
120
123
  this.maxNoEvidenceResettles = opts.maxNoEvidenceResettles ?? DEFAULT_MAX_NO_EVIDENCE_RESETTLES;
@@ -374,22 +377,51 @@ export class BlockerLedger {
374
377
  throw new BlockerLedgerError(`reasonKind must be one of the closed taxonomy: ${TRUE_BLOCKER_KINDS.join(', ')}`, 'invalid_reason_kind');
375
378
  }
376
379
  const rebuttal = this.boundText(input.rebuttal, 'rebuttal');
377
- const failDetail = this.boundText(input.failedAttempt?.detail, 'failedAttempt.detail');
378
380
  const accessRequestRef = this.boundText(input.accessRequest?.messageRef, 'accessRequest.messageRef');
379
381
  // 2. A failed-attempt rebuttal — NO kind is exempt. The FORM differs:
380
382
  // secret/account → failed self-fetch is mandatory; others → failed dry-run.
381
383
  const requiredAttemptType = SELF_FETCH_KINDS.has(input.reasonKind) ? 'self-fetch' : 'dry-run';
382
- if (input.failedAttempt?.type !== requiredAttemptType) {
383
- throw new BlockerLedgerError(`${input.reasonKind} requires a recorded failed ${requiredAttemptType} attempt before it can settle ` +
384
- `(self-fetch-first mandate: an agent must try its own vault/accounts first)`, 'missing_failed_attempt');
384
+ // 2a. "Self-Unblock Before Escalating" (§5.1): when the run store is configured
385
+ // (the feature is ENABLED), the failed attempt is NOT caller-supplied it is
386
+ // DERIVED from a persisted, VERIFIED checklist run. This is the load-bearing
387
+ // anti-gaming change: a caller can embed any `failedAttempt`, but it cannot
388
+ // mint a run the runner did not produce. A settle with no valid persisted run
389
+ // is a no-attempt → HARD reject `missing_failed_attempt`. When the store is
390
+ // NOT configured (dark default), the existing caller-supplied path runs below.
391
+ let failedAttempt;
392
+ if (this.selfUnblockRunStore) {
393
+ const run = typeof input.selfUnblockRunId === 'string' && input.selfUnblockRunId
394
+ ? this.selfUnblockRunStore.loadRun(input.selfUnblockRunId)
395
+ : null;
396
+ const verified = this.verifySelfUnblockRun(run, requiredAttemptType);
397
+ if (!verified.ok) {
398
+ throw new BlockerLedgerError(`${input.reasonKind} requires a VERIFIED self-unblock checklist run before it can settle ` +
399
+ `(self-unblock-before-escalating: ${verified.reason}). A caller-supplied failedAttempt ` +
400
+ `without a valid persisted run does not settle a blocker.`, 'missing_failed_attempt');
401
+ }
402
+ // Derive the attempt from the run — the caller's failedAttempt is ignored.
403
+ failedAttempt = {
404
+ type: requiredAttemptType,
405
+ detail: this.boundText(verified.detail, 'failedAttempt.detail'),
406
+ at: run.completedAt,
407
+ };
408
+ }
409
+ else {
410
+ // Dark default: the existing caller-supplied path, byte-for-byte unchanged.
411
+ if (input.failedAttempt?.type !== requiredAttemptType) {
412
+ throw new BlockerLedgerError(`${input.reasonKind} requires a recorded failed ${requiredAttemptType} attempt before it can settle ` +
413
+ `(self-fetch-first mandate: an agent must try its own vault/accounts first)`, 'missing_failed_attempt');
414
+ }
415
+ failedAttempt = input.failedAttempt;
385
416
  }
417
+ const failDetail = this.boundText(failedAttempt.detail, 'failedAttempt.detail');
386
418
  // Snapshot the entry + read-only checks BEFORE the async authority call.
387
419
  const snapshot = this.find(id);
388
420
  this.assertNotTerminal(snapshot);
389
421
  // 3. Temporal proof: the access-request to the user comes AFTER the failed attempt.
390
422
  // (Decoupled from the linear pipeline's `access-requested` state, which is about
391
423
  // requesting access to DO the work; this is the "only you can grant it" ask.)
392
- const failedAttemptAt = this.normalizeIso(input.failedAttempt.at) ?? this.iso();
424
+ const failedAttemptAt = this.normalizeIso(failedAttempt.at) ?? this.iso();
393
425
  const accessRequestAt = this.normalizeIso(input.accessRequest?.at) ?? snapshot.accessRequest?.at ?? this.iso();
394
426
  if (accessRequestAt < failedAttemptAt) {
395
427
  throw new BlockerLedgerError('the access-request must be recorded AFTER the failed self-fetch/dry-run — asking before trying does not settle a blocker', 'access_request_before_attempt');
@@ -553,6 +585,59 @@ export class BlockerLedger {
553
585
  throw new BlockerLedgerError(`blocker ${entry.id} is already settled (${entry.state})`, 'already_settled');
554
586
  }
555
587
  }
588
+ /**
589
+ * Verify a loaded Self-Unblock checklist run represents a GENUINE exhaustion
590
+ * before its derived attempt can settle a true-blocker ("Self-Unblock Before
591
+ * Escalating", §5.1). A run is valid iff it:
592
+ * - exists (the caller referenced a runId the runner actually produced),
593
+ * - is well-formed (a non-empty array of probe results + a completedAt),
594
+ * - matches the required attempt TYPE (a self-fetch-kind blocker needs a
595
+ * self-fetch run; a dry-run-kind needs a dry-run run),
596
+ * - is a genuine exhaustion: EVERY probe came up `holdsRelevantCred: false`
597
+ * (`exhausted: true`). A run that found a relevant credential is NOT an
598
+ * exhaustion — the agent should self-unblock with it, not escalate.
599
+ *
600
+ * Returns `{ ok: true, detail }` with a synthesized human summary of the probed
601
+ * sources, or `{ ok: false, reason }`.
602
+ */
603
+ verifySelfUnblockRun(run, requiredAttemptType) {
604
+ if (!run)
605
+ return { ok: false, reason: 'no persisted run found for the supplied runId' };
606
+ if (!Array.isArray(run.probes) || run.probes.length === 0) {
607
+ return { ok: false, reason: 'the persisted run has no probe results' };
608
+ }
609
+ if (typeof run.completedAt !== 'string' || !run.completedAt) {
610
+ return { ok: false, reason: 'the persisted run has no completedAt timestamp' };
611
+ }
612
+ if (run.requiredAttemptType !== requiredAttemptType) {
613
+ return {
614
+ ok: false,
615
+ reason: `the run produced a '${run.requiredAttemptType}' attempt but this blocker requires '${requiredAttemptType}'`,
616
+ };
617
+ }
618
+ // Each probe must be a well-formed structured result, and NONE may hold a
619
+ // relevant credential (a genuine exhaustion).
620
+ for (const probe of run.probes) {
621
+ if (!probe ||
622
+ typeof probe.source !== 'string' ||
623
+ typeof probe.reachable !== 'boolean' ||
624
+ typeof probe.holdsRelevantCred !== 'boolean') {
625
+ return { ok: false, reason: 'the persisted run contains a malformed probe result' };
626
+ }
627
+ if (probe.holdsRelevantCred) {
628
+ return {
629
+ ok: false,
630
+ reason: `the run found a relevant credential at '${probe.source}' — self-unblock with it instead of escalating`,
631
+ };
632
+ }
633
+ }
634
+ if (run.exhausted !== true) {
635
+ return { ok: false, reason: 'the persisted run is not flagged as an exhaustion' };
636
+ }
637
+ const sources = run.probes.map((p) => p.source).join(', ');
638
+ const detail = `self-unblock checklist exhausted (run ${run.runId}, target ${run.target}); probed: ${sources}; no relevant credential found`;
639
+ return { ok: true, detail };
640
+ }
556
641
  /** Parse a caller-supplied ISO timestamp; return undefined if absent/invalid. */
557
642
  normalizeIso(value) {
558
643
  if (typeof value !== 'string' || !value)
@@ -1 +1 @@
1
- {"version":3,"file":"BlockerLedger.js","sourceRoot":"","sources":["../../src/monitoring/BlockerLedger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockerLedger.js","sourceRoot":"","sources":["../../src/monitoring/BlockerLedger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * DurableVaultSession — the flag-gated, TTL+idle-bounded, in-flight-only warm
3
+ * org-Bitwarden session that lets the self-unblock checklist's org-vault probe
4
+ * (§5.2) actually reach the vault, so "the cred is in the vault but I can't reach
5
+ * it" never recurs (the motivating incident).
6
+ *
7
+ * CRITICAL SECURITY CONTRACT (spec §5.3 — the main security tradeoff of the
8
+ * standard, acknowledged as such):
9
+ * - The session value lives in PROCESS MEMORY ONLY (this object's private field).
10
+ * - It is NEVER written to any log/config/temp file.
11
+ * - It is NEVER passed as a CLI argument (argv is visible in `ps`); it is handed
12
+ * to `bw` ONLY via the child process's `BW_SESSION` env (the `runBw` injection
13
+ * point is responsible for that, and the real provider does so).
14
+ * - It is NEVER placed on the cross-machine `multiMachine.secretSync` path — this
15
+ * object holds it in a transient field, never in the SecretStore the sync layer
16
+ * reads. Machine-local.
17
+ * - The master password stays operator-held; this introduces NO new on-disk
18
+ * secret.
19
+ *
20
+ * Standing-privilege bound:
21
+ * - TTL: the session is considered stale `ttlMs` after it was derived.
22
+ * - Idle expiry: the session is dropped after `idleMs` with no use.
23
+ * - In-flight only: `withSession` derives (or reuses a fresh) session, runs the
24
+ * caller, and the session is only KEPT warm while a checklist run is actually
25
+ * in flight — minimizing the window a compromised process could reach the
26
+ * vault. Outside a run the session is eligible to be cleared.
27
+ *
28
+ * Ships DARK behind `monitoring.blockerLedger.durableVaultSession.*` (dev-gate via
29
+ * omitted `enabled`). When disabled, the org-vault probe simply reports unreachable.
30
+ */
31
+ export interface DurableVaultSessionOptions {
32
+ /**
33
+ * Derive a fresh session value (e.g. `bw unlock <password> --raw`, or read an
34
+ * already-unlocked session). MUST return the raw session string or null when the
35
+ * vault cannot be unlocked. INJECTED so the real bw call stays out of this class
36
+ * (and tests never shell out). The password is the caller's responsibility — this
37
+ * class never holds or logs it.
38
+ */
39
+ deriveSession: () => Promise<string | null> | string | null;
40
+ /** Time-to-live for a derived session (default 10 min). */
41
+ ttlMs?: number;
42
+ /** Idle-expiry (default 2 min). */
43
+ idleMs?: number;
44
+ /** Injectable clock for deterministic tests. */
45
+ now?: () => number;
46
+ }
47
+ export declare class DurableVaultSession {
48
+ /** The in-memory session value. NEVER persisted, logged, or argv-passed. */
49
+ private session;
50
+ private derivedAt;
51
+ private lastUsedAt;
52
+ /** Re-entrancy guard: how many in-flight runs are holding the session warm. */
53
+ private inFlight;
54
+ /** Coalesce concurrent derivations so we never unlock twice in parallel. */
55
+ private derivePromise;
56
+ private readonly deriveSession;
57
+ private readonly ttlMs;
58
+ private readonly idleMs;
59
+ private readonly now;
60
+ constructor(opts: DurableVaultSessionOptions);
61
+ /** Is the held session still valid (not past TTL, not idle-expired)? */
62
+ private isValid;
63
+ /**
64
+ * Ensure a valid session, deriving one if needed (coalescing concurrent
65
+ * derivations). Returns null when the vault cannot be unlocked. NEVER returns or
66
+ * logs the value through any surface other than the direct return.
67
+ */
68
+ private ensure;
69
+ /**
70
+ * Run `fn` with a warm session value, keeping it warm ONLY while the run is in
71
+ * flight. The session value is passed to `fn` for direct, in-process use (e.g.
72
+ * handing it to the bw child's `BW_SESSION` env) — `fn` MUST NOT log or persist
73
+ * it. Returns null (without running `fn`) when no session can be derived.
74
+ */
75
+ withSession<T>(fn: (session: string) => Promise<T> | T): Promise<T | null>;
76
+ /** True iff a usable session is currently held (for the observability surface — NEVER the value). */
77
+ hasWarmSession(): boolean;
78
+ /** Explicitly drop the in-memory session (zero standing privilege). */
79
+ clear(): void;
80
+ /**
81
+ * Redacted serialization. A logger (or an accidental `JSON.stringify`) must
82
+ * NEVER spill the session value — this overrides the default enumeration so the
83
+ * value can only ever be reached through `withSession`'s fn argument. Part of
84
+ * the §5.3 no-leak contract.
85
+ */
86
+ toJSON(): {
87
+ warm: boolean;
88
+ redacted: true;
89
+ };
90
+ }
91
+ //# sourceMappingURL=DurableVaultSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableVaultSession.d.ts","sourceRoot":"","sources":["../../src/monitoring/DurableVaultSession.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,MAAM,WAAW,0BAA0B;IACzC;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5D,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,mBAAmB;IAC9B,4EAA4E;IAC5E,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IACvB,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAK;IACrB,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,0BAA0B;IAO5C,wEAAwE;IACxE,OAAO,CAAC,OAAO;IAQf;;;;OAIG;YACW,MAAM;IA0BpB;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBhF,qGAAqG;IACrG,cAAc,IAAI,OAAO;IAIzB,uEAAuE;IACvE,KAAK,IAAI,IAAI;IAMb;;;;;OAKG;IACH,MAAM,IAAI;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAQ5C"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * DurableVaultSession — the flag-gated, TTL+idle-bounded, in-flight-only warm
3
+ * org-Bitwarden session that lets the self-unblock checklist's org-vault probe
4
+ * (§5.2) actually reach the vault, so "the cred is in the vault but I can't reach
5
+ * it" never recurs (the motivating incident).
6
+ *
7
+ * CRITICAL SECURITY CONTRACT (spec §5.3 — the main security tradeoff of the
8
+ * standard, acknowledged as such):
9
+ * - The session value lives in PROCESS MEMORY ONLY (this object's private field).
10
+ * - It is NEVER written to any log/config/temp file.
11
+ * - It is NEVER passed as a CLI argument (argv is visible in `ps`); it is handed
12
+ * to `bw` ONLY via the child process's `BW_SESSION` env (the `runBw` injection
13
+ * point is responsible for that, and the real provider does so).
14
+ * - It is NEVER placed on the cross-machine `multiMachine.secretSync` path — this
15
+ * object holds it in a transient field, never in the SecretStore the sync layer
16
+ * reads. Machine-local.
17
+ * - The master password stays operator-held; this introduces NO new on-disk
18
+ * secret.
19
+ *
20
+ * Standing-privilege bound:
21
+ * - TTL: the session is considered stale `ttlMs` after it was derived.
22
+ * - Idle expiry: the session is dropped after `idleMs` with no use.
23
+ * - In-flight only: `withSession` derives (or reuses a fresh) session, runs the
24
+ * caller, and the session is only KEPT warm while a checklist run is actually
25
+ * in flight — minimizing the window a compromised process could reach the
26
+ * vault. Outside a run the session is eligible to be cleared.
27
+ *
28
+ * Ships DARK behind `monitoring.blockerLedger.durableVaultSession.*` (dev-gate via
29
+ * omitted `enabled`). When disabled, the org-vault probe simply reports unreachable.
30
+ */
31
+ const DEFAULT_TTL_MS = 10 * 60 * 1000; // 10 min — a refreshable warm session
32
+ const DEFAULT_IDLE_MS = 2 * 60 * 1000; // 2 min idle → drop
33
+ export class DurableVaultSession {
34
+ /** The in-memory session value. NEVER persisted, logged, or argv-passed. */
35
+ session = null;
36
+ derivedAt = 0;
37
+ lastUsedAt = 0;
38
+ /** Re-entrancy guard: how many in-flight runs are holding the session warm. */
39
+ inFlight = 0;
40
+ /** Coalesce concurrent derivations so we never unlock twice in parallel. */
41
+ derivePromise = null;
42
+ deriveSession;
43
+ ttlMs;
44
+ idleMs;
45
+ now;
46
+ constructor(opts) {
47
+ this.deriveSession = opts.deriveSession;
48
+ this.ttlMs = opts.ttlMs ?? DEFAULT_TTL_MS;
49
+ this.idleMs = opts.idleMs ?? DEFAULT_IDLE_MS;
50
+ this.now = opts.now ?? (() => Date.now());
51
+ }
52
+ /** Is the held session still valid (not past TTL, not idle-expired)? */
53
+ isValid() {
54
+ if (!this.session)
55
+ return false;
56
+ const t = this.now();
57
+ if (t - this.derivedAt >= this.ttlMs)
58
+ return false; // TTL
59
+ if (this.inFlight === 0 && t - this.lastUsedAt >= this.idleMs)
60
+ return false; // idle
61
+ return true;
62
+ }
63
+ /**
64
+ * Ensure a valid session, deriving one if needed (coalescing concurrent
65
+ * derivations). Returns null when the vault cannot be unlocked. NEVER returns or
66
+ * logs the value through any surface other than the direct return.
67
+ */
68
+ async ensure() {
69
+ if (this.isValid()) {
70
+ this.lastUsedAt = this.now();
71
+ return this.session;
72
+ }
73
+ // Drop a stale value before re-deriving.
74
+ this.session = null;
75
+ if (this.derivePromise)
76
+ return this.derivePromise;
77
+ this.derivePromise = (async () => {
78
+ try {
79
+ const value = await this.deriveSession();
80
+ if (typeof value === 'string' && value.length > 0) {
81
+ this.session = value;
82
+ this.derivedAt = this.now();
83
+ this.lastUsedAt = this.derivedAt;
84
+ return this.session;
85
+ }
86
+ this.session = null;
87
+ return null;
88
+ }
89
+ finally {
90
+ this.derivePromise = null;
91
+ }
92
+ })();
93
+ return this.derivePromise;
94
+ }
95
+ /**
96
+ * Run `fn` with a warm session value, keeping it warm ONLY while the run is in
97
+ * flight. The session value is passed to `fn` for direct, in-process use (e.g.
98
+ * handing it to the bw child's `BW_SESSION` env) — `fn` MUST NOT log or persist
99
+ * it. Returns null (without running `fn`) when no session can be derived.
100
+ */
101
+ async withSession(fn) {
102
+ this.inFlight += 1;
103
+ try {
104
+ const session = await this.ensure();
105
+ if (!session)
106
+ return null;
107
+ this.lastUsedAt = this.now();
108
+ const result = await fn(session);
109
+ this.lastUsedAt = this.now();
110
+ return result;
111
+ }
112
+ finally {
113
+ this.inFlight -= 1;
114
+ // Outside a run, allow idle-expiry to clear the value on the next check; an
115
+ // explicit clear is offered for callers that want zero standing privilege.
116
+ if (this.inFlight === 0 && !this.isValid()) {
117
+ this.session = null;
118
+ }
119
+ }
120
+ }
121
+ /** True iff a usable session is currently held (for the observability surface — NEVER the value). */
122
+ hasWarmSession() {
123
+ return this.isValid();
124
+ }
125
+ /** Explicitly drop the in-memory session (zero standing privilege). */
126
+ clear() {
127
+ this.session = null;
128
+ this.derivedAt = 0;
129
+ this.lastUsedAt = 0;
130
+ }
131
+ /**
132
+ * Redacted serialization. A logger (or an accidental `JSON.stringify`) must
133
+ * NEVER spill the session value — this overrides the default enumeration so the
134
+ * value can only ever be reached through `withSession`'s fn argument. Part of
135
+ * the §5.3 no-leak contract.
136
+ */
137
+ toJSON() {
138
+ return { warm: this.hasWarmSession(), redacted: true };
139
+ }
140
+ /** Same redaction for Node's util.inspect / console.log. */
141
+ [Symbol.for('nodejs.util.inspect.custom')]() {
142
+ return `DurableVaultSession { warm: ${this.hasWarmSession()}, session: <redacted> }`;
143
+ }
144
+ }
145
+ //# sourceMappingURL=DurableVaultSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableVaultSession.js","sourceRoot":"","sources":["../../src/monitoring/DurableVaultSession.ts"],"names":[],"mappings":"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"}