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
@@ -0,0 +1,281 @@
1
+ /**
2
+ * SelfUnblockChecklist — the deterministic, code-driven exhaustion checklist that
3
+ * COMPLETES the constitutional standard "Self-Unblock Before Escalating"
4
+ * (docs/specs/self-unblock-before-escalating.md).
5
+ *
6
+ * Foundation (§0): this does NOT fork a parallel gate. BlockerLedger's
7
+ * `settleTrueBlocker` already MANDATES a recorded failed self-fetch/dry-run before
8
+ * a credential/account blocker can settle as a `true-blocker`. The MISSING half
9
+ * was a STANDARD, code-driven set of sources an agent must have probed first —
10
+ * turning "you must record a failed attempt" into "here is the ordered list of
11
+ * places a self-unblockable credential could live, all of which came up empty".
12
+ *
13
+ * What this module provides (the four genuine additions over BlockerLedger):
14
+ * 1. A deterministic relevance matcher (`isScopeRelevant`) — a credential's
15
+ * declared scope tag is "relevant" to a target zone/service iff a
16
+ * deterministic tag/zone match (domain hierarchy + wildcard). Ambiguous,
17
+ * conflicting, or MISSING metadata fails CLOSED. NO LLM in this path.
18
+ * 2. An ORDERED probe runner (`SelfUnblockChecklist.run`) — cheapest/local
19
+ * first, short-circuit on the first `holdsRelevantCred: true`. Each probe is
20
+ * independently timeout-bounded BY CLASS (local sub-second; remote 10–15s),
21
+ * failing toward `reachable: false` on timeout.
22
+ * 3. A durable run STORE (`SelfUnblockRunStore`) — persists each run keyed by an
23
+ * immutable runId; `loadRun(runId)` is what BlockerLedger LOADS + verifies so
24
+ * a caller cannot mint a run the runner did not produce (closes the round-1
25
+ * "self-asserted/gameable list" finding mechanically).
26
+ * 4. The ladder/rung-floor helper (`resolveRung` / `rungToAuthorityCheck`) — maps
27
+ * the human-requirement ladder (§3) onto BlockerLedger's existing
28
+ * `AuthorityCheckEvidence`; enforces the rung FLOOR (capability ≠ authority).
29
+ *
30
+ * Signal vs Authority: this module RECORDS and STRUCTURES. The one judgment —
31
+ * the `true-blocker` settle — stays with BlockerLedger's injected Tier-1
32
+ * authority. This module never blocks an outbound message.
33
+ *
34
+ * Ships DARK behind the existing `monitoring.blockerLedger.*` gate (dev-gate via
35
+ * omitted `enabled`). When the run store is not injected into BlockerLedger, the
36
+ * existing caller-supplied `failedAttempt` path is unchanged.
37
+ */
38
+ /** The ordered probe sources (cheapest/local first). Closed taxonomy. */
39
+ export declare const SELF_UNBLOCK_PROBE_SOURCES: readonly ["own-vault", "org-bitwarden", "cloud-vercel", "cloud-cloudflare", "cloud-github", "cloud-launchd", "mcp-tools", "browser-playwright", "controlled-resource"];
40
+ export type SelfUnblockProbeSource = (typeof SELF_UNBLOCK_PROBE_SOURCES)[number];
41
+ /** Timeout CLASS per probe — local/keychain probes are sub-second; remote 10–15s. */
42
+ export type ProbeTimeoutClass = 'local' | 'remote';
43
+ /** Default timeout budget (ms) per class. */
44
+ export declare const PROBE_TIMEOUT_MS: Record<ProbeTimeoutClass, number>;
45
+ /** Which class each source belongs to (drives the per-probe timeout). */
46
+ export declare const PROBE_SOURCE_CLASS: Record<SelfUnblockProbeSource, ProbeTimeoutClass>;
47
+ /** A single probe's structured result (stamped, never free-form). */
48
+ export interface SelfUnblockProbeResult {
49
+ /** Which source was probed. */
50
+ source: SelfUnblockProbeSource;
51
+ /** Could the source be reached at all? false on timeout/error (fails closed). */
52
+ reachable: boolean;
53
+ /**
54
+ * Does this source hold a credential RELEVANT to the target? Decided
55
+ * DETERMINISTICALLY by `isScopeRelevant` (never an LLM). Missing/ambiguous
56
+ * scope metadata fails CLOSED → false.
57
+ */
58
+ holdsRelevantCred: boolean;
59
+ /** ISO timestamp the probe ran. */
60
+ probedAt: string;
61
+ /**
62
+ * Optional short note for the audit surface (untrusted free text — surfaced via
63
+ * BlockerLedger's `<blocker-ledger-data>` envelope, never an instruction).
64
+ */
65
+ detail?: string;
66
+ /** The scope tags this source advertised that were CHECKED against the target. */
67
+ matchedScopeTags?: string[];
68
+ }
69
+ /** A complete checklist run, keyed by an immutable runId. */
70
+ export interface SelfUnblockRun {
71
+ /** Immutable id the runner mints (the caller cannot forge one). */
72
+ runId: string;
73
+ /** The blocker target this run probed (a zone/service, e.g. `cloudflare:feedback.dawn-tunnel.dev`). */
74
+ target: string;
75
+ /** Required attempt TYPE this run produces evidence for (matches BlockerLedger's taxonomy). */
76
+ requiredAttemptType: 'self-fetch' | 'dry-run';
77
+ /** The ordered per-probe results (short-circuited after the first hit, if any). */
78
+ probes: SelfUnblockProbeResult[];
79
+ /** ISO timestamp the run finished. */
80
+ completedAt: string;
81
+ /**
82
+ * True iff EVERY probe came up `holdsRelevantCred: false` — a genuine
83
+ * exhaustion. A run with any `holdsRelevantCred: true` is NOT exhausted (the
84
+ * agent should self-unblock with that credential, not escalate).
85
+ */
86
+ exhausted: boolean;
87
+ }
88
+ /**
89
+ * A parsed scope tag: `service:scope` (e.g. `cloudflare:dawn-tunnel.dev`,
90
+ * `vercel:project`, `cloudflare:*.dawn-tunnel.dev`).
91
+ */
92
+ export interface ScopeTag {
93
+ service: string;
94
+ scope: string;
95
+ }
96
+ /**
97
+ * Parse a `service:scope` tag. Returns null when the shape is malformed (a tag
98
+ * the matcher must treat as ambiguous → fail closed).
99
+ *
100
+ * A scope is allowed to contain ':' (rare), so only the FIRST colon splits
101
+ * service from scope. An empty service or empty scope is malformed.
102
+ */
103
+ export declare function parseScopeTag(tag: unknown): ScopeTag | null;
104
+ /**
105
+ * Is a credential whose declared scope tag is `credTag` RELEVANT to the blocker
106
+ * `target` (also a `service:scope` tag)? Deterministic. Fails CLOSED on any
107
+ * malformed/missing/cross-service input.
108
+ *
109
+ * - Both tags must parse (`service:scope`).
110
+ * - The SERVICE must match exactly (a Vercel cred is never relevant to a
111
+ * Cloudflare target).
112
+ * - The SCOPE must match per `domainScopeMatches`.
113
+ */
114
+ export declare function isScopeRelevant(credTag: unknown, target: unknown): boolean;
115
+ /**
116
+ * Given a set of scope tags a source advertises, is ANY of them relevant to the
117
+ * target? An empty/undefined set fails CLOSED → false (under-tagged credential is
118
+ * simply not surfaced). Returns the matching tags for the audit surface.
119
+ */
120
+ export declare function relevantScopeTags(advertised: unknown, target: string): string[];
121
+ /**
122
+ * What a probe provider returns. The provider is responsible ONLY for reaching the
123
+ * source and listing the scope tags the source ADVERTISES; the checklist runner
124
+ * applies the deterministic relevance match. A provider that cannot reach the
125
+ * source returns `{ reachable: false }` (or throws/times out → the runner records
126
+ * `reachable: false`).
127
+ */
128
+ export interface ProbeProviderResult {
129
+ reachable: boolean;
130
+ /** The scope tags this source advertises (e.g. the zones a CF token can edit). */
131
+ advertisedScopeTags?: string[];
132
+ /** Optional short audit note. */
133
+ detail?: string;
134
+ }
135
+ /** One source's probe implementation. MUST be self-bounded but the runner also
136
+ * enforces a hard per-class timeout so a hung provider degrades to unreachable. */
137
+ export type ProbeProvider = (target: string) => Promise<ProbeProviderResult>;
138
+ /** The full set of injectable providers, one per source. */
139
+ export type ProbeProviders = Partial<Record<SelfUnblockProbeSource, ProbeProvider>>;
140
+ /** The read interface BlockerLedger depends on (the ONLY surface it needs). */
141
+ export interface SelfUnblockRunLoader {
142
+ loadRun(runId: string): SelfUnblockRun | null;
143
+ }
144
+ /**
145
+ * Durable JSONL store for checklist runs. One run per line, keyed by an immutable
146
+ * runId. `loadRun` is skip-corrupt-lines tolerant + bounded (precedent:
147
+ * ReapLog.read). A run is APPEND-only; the store never mutates a prior run.
148
+ */
149
+ export declare class SelfUnblockRunStore implements SelfUnblockRunLoader {
150
+ private readonly runsPath;
151
+ /** Bound on how many trailing lines `loadRun` will scan (newest runs win). */
152
+ private readonly maxScan;
153
+ constructor(opts: {
154
+ stateDir: string;
155
+ maxScan?: number;
156
+ });
157
+ /** The file the store reads/writes (exposed for tests). */
158
+ get path(): string;
159
+ /** Append a completed run. Best-effort durable (atomic append). */
160
+ save(run: SelfUnblockRun): void;
161
+ /**
162
+ * Load a run by id, scanning the trailing `maxScan` lines newest-first so a
163
+ * recent run is found fast and a corrupt/partial line never fails the read.
164
+ * Returns null when the id is unknown.
165
+ */
166
+ loadRun(runId: string): SelfUnblockRun | null;
167
+ /** Read the most-recent `limit` runs (newest last) for the read surface. */
168
+ list(limit?: number): SelfUnblockRun[];
169
+ }
170
+ export interface SelfUnblockChecklistOptions {
171
+ /** Injectable providers. A missing provider is treated as `reachable: false`. */
172
+ providers?: ProbeProviders;
173
+ /** The durable run store. */
174
+ store: SelfUnblockRunStore;
175
+ /** Injectable clock for deterministic tests. */
176
+ now?: () => Date;
177
+ /** Override timeout budgets (tests). */
178
+ timeoutMs?: Partial<Record<ProbeTimeoutClass, number>>;
179
+ /** Inject the runId minter (tests assert it is the runner's, not the caller's). */
180
+ mintRunId?: () => string;
181
+ }
182
+ export declare class SelfUnblockChecklist {
183
+ private readonly providers;
184
+ private readonly store;
185
+ private readonly now;
186
+ private readonly timeouts;
187
+ private readonly mintRunId;
188
+ constructor(opts: SelfUnblockChecklistOptions);
189
+ /**
190
+ * Run the ORDERED checklist against `target`, short-circuiting on the first
191
+ * `holdsRelevantCred: true`. Persists the run and returns it.
192
+ *
193
+ * `requiredAttemptType` matches BlockerLedger's taxonomy: `self-fetch` for the
194
+ * credential/account-kind blockers (vault/cloud-account probes), `dry-run`
195
+ * otherwise.
196
+ */
197
+ run(input: {
198
+ target: string;
199
+ requiredAttemptType: 'self-fetch' | 'dry-run';
200
+ }): Promise<SelfUnblockRun>;
201
+ /** Probe ONE source with a hard per-class timeout. Fails toward `reachable: false`. */
202
+ private probeOne;
203
+ /** Reject after `ms`, so a hung provider can never stall the path. */
204
+ private withTimeout;
205
+ }
206
+ /** The ladder rungs (§3). */
207
+ export type SelfUnblockRung = 0 | 1 | 2;
208
+ /**
209
+ * An action CLASS that carries a rung FLOOR. The four floor-raising properties
210
+ * (§3, capability ≠ authority): an action that is irreversible, cost-bearing
211
+ * above a threshold, out-of-original-scope, or policy-sensitive has a MINIMUM
212
+ * rung of 1 (approval) EVEN IF a self-unblock credential exists.
213
+ */
214
+ export interface ActionClass {
215
+ /** Cannot be undone (a delete, a wire, a publish). */
216
+ irreversible?: boolean;
217
+ /** Bears cost above the approval threshold. */
218
+ costBearingAboveThreshold?: boolean;
219
+ /** Outside the goal's originally-granted scope. */
220
+ outOfScope?: boolean;
221
+ /** Policy-sensitive (legal, PII export, etc.). */
222
+ policySensitive?: boolean;
223
+ }
224
+ /** True iff the action class triggers the rung-1 floor. */
225
+ export declare function actionTriggersRungFloor(action: ActionClass | undefined): boolean;
226
+ export interface ResolveRungInput {
227
+ /**
228
+ * The run that probed the blocker. When `exhausted` is false (a relevant cred
229
+ * was found), the agent can self-unblock → rung 0 UNLESS the action floor
230
+ * raises it. When exhausted, no self-unblock cred exists → at least rung 1
231
+ * (approval) and rung 2 if the dependency is an operator-only secret.
232
+ */
233
+ run: SelfUnblockRun;
234
+ /** The action class (drives the rung floor). */
235
+ action?: ActionClass;
236
+ /**
237
+ * Is the unblock dependency an operator-only secret/account (the rung-2 case)?
238
+ * Derived from BlockerLedger's taxonomy at the caller; rung 2 is the credential
239
+ * only an authorized employee can produce.
240
+ */
241
+ operatorOnlySecret?: boolean;
242
+ }
243
+ export interface RungResolution {
244
+ /** The resolved rung. */
245
+ rung: SelfUnblockRung;
246
+ /** Whether the rung was RAISED by the action-class floor (vs the base resolution). */
247
+ raisedByFloor: boolean;
248
+ /** Human-readable reason (untrusted-safe — plain enum-derived text). */
249
+ reason: string;
250
+ }
251
+ /**
252
+ * Resolve the lowest legitimate rung for a blocker, ENFORCING the rung floor.
253
+ *
254
+ * Base resolution:
255
+ * - run NOT exhausted (a self-unblock cred exists) → rung 0 (nothing required)
256
+ * - run exhausted + operator-only secret → rung 2 (operator-only credential)
257
+ * - run exhausted otherwise → rung 1 (an approval)
258
+ *
259
+ * Floor (capability ≠ authority): if the action class is irreversible /
260
+ * cost-bearing-above-threshold / out-of-scope / policy-sensitive, the rung can
261
+ * never be BELOW 1 — even a rung-0 self-unblock is raised to rung 1 (approval).
262
+ */
263
+ export declare function resolveRung(input: ResolveRungInput): RungResolution;
264
+ /**
265
+ * Map a resolved rung onto BlockerLedger's existing `AuthorityCheckEvidence`
266
+ * shape (§3 — the rung is recorded there, NOT in a new field). A rung-1 grant
267
+ * MUST resolve against a VERIFIED principal (Know Your Principal): when the rung
268
+ * is >=1 and the grant matters, `principalVerified` must be true or the grant is
269
+ * not honored. This function refuses to assert `userHasAuthority: true` for an
270
+ * unverified principal.
271
+ */
272
+ export declare function rungToAuthorityCheck(input: {
273
+ resolution: RungResolution;
274
+ /** Was the approving/granting principal VERIFIED (mandate / verified-operator surface)? */
275
+ principalVerified: boolean;
276
+ }): {
277
+ agentHasAuthority: boolean;
278
+ userHasAuthority: boolean;
279
+ note: string;
280
+ };
281
+ //# sourceMappingURL=SelfUnblockChecklist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelfUnblockChecklist.d.ts","sourceRoot":"","sources":["../../src/monitoring/SelfUnblockChecklist.ts"],"names":[],"mappings":"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"}