@zackbart/connecta 0.7.9 → 0.8.1
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/CHANGELOG.md +135 -0
- package/README.md +47 -148
- package/dist/activity.d.ts +0 -8
- package/dist/activity.d.ts.map +1 -1
- package/dist/activity.js +0 -1
- package/dist/activity.js.map +1 -1
- package/dist/auth/bearer.d.ts +1 -7
- package/dist/auth/bearer.d.ts.map +1 -1
- package/dist/auth/bearer.js +3 -24
- package/dist/auth/bearer.js.map +1 -1
- package/dist/auth/clerk.d.ts +2 -11
- package/dist/auth/clerk.d.ts.map +1 -1
- package/dist/auth/clerk.js +31 -46
- package/dist/auth/clerk.js.map +1 -1
- package/dist/call-admission.d.ts.map +1 -1
- package/dist/call-admission.js +9 -4
- package/dist/call-admission.js.map +1 -1
- package/dist/catalog-fingerprint.d.ts +20 -0
- package/dist/catalog-fingerprint.d.ts.map +1 -0
- package/dist/catalog-fingerprint.js +34 -0
- package/dist/catalog-fingerprint.js.map +1 -0
- package/dist/catalog-limits.d.ts +10 -0
- package/dist/catalog-limits.d.ts.map +1 -0
- package/dist/catalog-limits.js +10 -0
- package/dist/catalog-limits.js.map +1 -0
- package/dist/catalog-service.d.ts +137 -0
- package/dist/catalog-service.d.ts.map +1 -0
- package/dist/catalog-service.js +401 -0
- package/dist/catalog-service.js.map +1 -0
- package/dist/catalog.d.ts +6 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +53 -2
- package/dist/catalog.js.map +1 -1
- package/dist/concurrency.d.ts +4 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +31 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/connectors/api.d.ts.map +1 -1
- package/dist/connectors/api.js +22 -12
- package/dist/connectors/api.js.map +1 -1
- package/dist/connectors/remote-mcp.d.ts.map +1 -1
- package/dist/connectors/remote-mcp.js +53 -41
- package/dist/connectors/remote-mcp.js.map +1 -1
- package/dist/credentials.d.ts +3 -2
- package/dist/credentials.d.ts.map +1 -1
- package/dist/errors.d.ts +19 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +10 -16
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +143 -330
- package/dist/execute.js.map +1 -1
- package/dist/executor-result.d.ts +0 -3
- package/dist/executor-result.d.ts.map +1 -1
- package/dist/executor-result.js +3 -3
- package/dist/executor-result.js.map +1 -1
- package/dist/executors/quickjs-child.js +3 -3
- package/dist/executors/quickjs-child.js.map +1 -1
- package/dist/executors/quickjs-protocol.d.ts +4 -1
- package/dist/executors/quickjs-protocol.d.ts.map +1 -1
- package/dist/executors/quickjs-runtime.d.ts.map +1 -1
- package/dist/executors/quickjs-runtime.js +7 -2
- package/dist/executors/quickjs-runtime.js.map +1 -1
- package/dist/executors/quickjs.d.ts.map +1 -1
- package/dist/executors/quickjs.js +4 -1
- package/dist/executors/quickjs.js.map +1 -1
- package/dist/favicon.js +2 -2
- package/dist/favicon.js.map +1 -1
- package/dist/index.d.ts +8 -82
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -104
- package/dist/index.js.map +1 -1
- package/dist/invocation.d.ts +101 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +405 -0
- package/dist/invocation.js.map +1 -0
- package/dist/meta-tools.d.ts +9 -95
- package/dist/meta-tools.d.ts.map +1 -1
- package/dist/meta-tools.js +235 -725
- package/dist/meta-tools.js.map +1 -1
- package/dist/operator-ui/generated.d.ts +3 -0
- package/dist/operator-ui/generated.d.ts.map +1 -0
- package/dist/operator-ui/generated.js +5 -0
- package/dist/operator-ui/generated.js.map +1 -0
- package/dist/operator-ui/model.d.ts +73 -0
- package/dist/operator-ui/model.d.ts.map +1 -0
- package/dist/operator-ui/model.js +28 -0
- package/dist/operator-ui/model.js.map +1 -0
- package/dist/registry.d.ts +33 -184
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +345 -330
- package/dist/registry.js.map +1 -1
- package/dist/retired-toolkits.d.ts +3 -0
- package/dist/retired-toolkits.d.ts.map +1 -0
- package/dist/retired-toolkits.js +9 -0
- package/dist/retired-toolkits.js.map +1 -0
- package/dist/routes/activity.d.ts +3 -0
- package/dist/routes/activity.d.ts.map +1 -0
- package/dist/routes/activity.js +170 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/credentials.d.ts +3 -0
- package/dist/routes/credentials.d.ts.map +1 -0
- package/dist/routes/credentials.js +170 -0
- package/dist/routes/credentials.js.map +1 -0
- package/dist/routes/mcp.d.ts +8 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +270 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/oauth.d.ts +4 -0
- package/dist/routes/oauth.d.ts.map +1 -0
- package/dist/routes/oauth.js +263 -0
- package/dist/routes/oauth.js.map +1 -0
- package/dist/routes/shared.d.ts +76 -0
- package/dist/routes/shared.d.ts.map +1 -0
- package/dist/routes/shared.js +140 -0
- package/dist/routes/shared.js.map +1 -0
- package/dist/routes/ui.d.ts +3 -0
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +116 -0
- package/dist/routes/ui.js.map +1 -0
- package/dist/server.d.ts +9 -40
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +62 -1322
- package/dist/server.js.map +1 -1
- package/dist/skills.d.ts +3 -21
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +15 -43
- package/dist/skills.js.map +1 -1
- package/dist/storage/file.d.ts.map +1 -1
- package/dist/storage/file.js +3 -1
- package/dist/storage/file.js.map +1 -1
- package/dist/storage/memory.d.ts.map +1 -1
- package/dist/storage/memory.js +3 -1
- package/dist/storage/memory.js.map +1 -1
- package/dist/timeout.d.ts.map +1 -1
- package/dist/timeout.js +2 -4
- package/dist/timeout.js.map +1 -1
- package/dist/types.d.ts +9 -59
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +3 -94
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +30 -1427
- package/dist/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +15 -8
- package/src/activity.ts +0 -9
- package/src/auth/bearer.ts +4 -33
- package/src/auth/clerk.ts +35 -48
- package/src/call-admission.ts +8 -6
- package/src/catalog-fingerprint.ts +52 -0
- package/src/catalog-limits.ts +11 -0
- package/src/catalog-service.ts +601 -0
- package/src/catalog.ts +57 -2
- package/src/concurrency.ts +39 -0
- package/src/connectors/api.ts +22 -12
- package/src/connectors/remote-mcp.ts +63 -45
- package/src/credentials.ts +2 -2
- package/src/errors.ts +21 -1
- package/src/execute.ts +193 -423
- package/src/executor-result.ts +3 -3
- package/src/executors/quickjs-child.ts +8 -4
- package/src/executors/quickjs-protocol.ts +1 -1
- package/src/executors/quickjs-runtime.ts +5 -1
- package/src/executors/quickjs.ts +11 -8
- package/src/favicon.ts +2 -2
- package/src/index.ts +70 -222
- package/src/invocation.ts +580 -0
- package/src/meta-tools.ts +393 -985
- package/src/operator-ui/browser.css +360 -0
- package/src/operator-ui/browser.ts +987 -0
- package/src/operator-ui/generated.ts +4 -0
- package/src/operator-ui/model.ts +105 -0
- package/src/registry.ts +459 -439
- package/src/retired-toolkits.ts +14 -0
- package/src/routes/activity.ts +215 -0
- package/src/routes/credentials.ts +254 -0
- package/src/routes/mcp.ts +339 -0
- package/src/routes/oauth.ts +322 -0
- package/src/routes/shared.ts +240 -0
- package/src/routes/ui.ts +143 -0
- package/src/server.ts +64 -1731
- package/src/skills.ts +15 -43
- package/src/storage/file.ts +3 -1
- package/src/storage/memory.ts +3 -1
- package/src/timeout.ts +2 -4
- package/src/types.ts +8 -60
- package/src/ui.ts +60 -1538
- package/src/version.ts +1 -1
- package/dist/credential-health.d.ts +0 -227
- package/dist/credential-health.d.ts.map +0 -1
- package/dist/credential-health.js +0 -606
- package/dist/credential-health.js.map +0 -1
- package/dist/toolkits.d.ts +0 -146
- package/dist/toolkits.d.ts.map +0 -1
- package/dist/toolkits.js +0 -322
- package/dist/toolkits.js.map +0 -1
- package/src/credential-health.ts +0 -832
- package/src/toolkits.ts +0 -461
package/src/version.ts
CHANGED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import type { CredentialVault } from "./credentials.js";
|
|
2
|
-
import { type DeferredWork } from "./connector-scope.js";
|
|
3
|
-
import type { Connector, ConnectorContext, ConnectorStatusState, KVStorage, Logger } from "./types.js";
|
|
4
|
-
/** Verdict of one liveness check. Same vocabulary as `ConnectorStatus.state`. */
|
|
5
|
-
export type CredentialCheckState = ConnectorStatusState;
|
|
6
|
-
/** The stored verdict of the most recent liveness check of one connector. */
|
|
7
|
-
export interface CredentialHealthRecord {
|
|
8
|
-
state: CredentialCheckState;
|
|
9
|
-
/** ISO timestamp of the check that produced this record. */
|
|
10
|
-
checkedAt: string;
|
|
11
|
-
/** Why, for a non-ok state — the connector's own reason, verbatim. */
|
|
12
|
-
message?: string;
|
|
13
|
-
/** Consent URL to open, when the connector reported one. */
|
|
14
|
-
authorizationUrl?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Why a connector was not checked.
|
|
18
|
-
*
|
|
19
|
-
* - `not_found` — no connector with that id is registered. Only reachable
|
|
20
|
-
* through an explicit `ids` request, and reported rather than dropped so a
|
|
21
|
-
* typo in a scheduled check is visible instead of silent.
|
|
22
|
-
* - `not_checkable` — it stores no credential connecta manages, or exposes no
|
|
23
|
-
* usable way to ask: neither `status()` nor a credential test hook the
|
|
24
|
-
* declared credential shape can use (`credentialTestRule`), against a value
|
|
25
|
-
* actually stored under it.
|
|
26
|
-
* - `no_credential` — checkable, but nothing is stored yet: there is no
|
|
27
|
-
* credential whose liveness could be in question, and probing would start an
|
|
28
|
-
* OAuth flow nobody asked for.
|
|
29
|
-
* - `fresh` — checked less than `intervalSeconds` ago (by any isolate — the
|
|
30
|
-
* record is persisted), so this is the rate limit doing its job.
|
|
31
|
-
* - `in_flight` — another check of this connector is already running.
|
|
32
|
-
*/
|
|
33
|
-
export type CredentialCheckSkip = "not_found" | "not_checkable" | "no_credential" | "fresh" | "in_flight";
|
|
34
|
-
/** One connector's outcome in a sweep. */
|
|
35
|
-
export interface CredentialCheckResult {
|
|
36
|
-
connectorId: string;
|
|
37
|
-
/**
|
|
38
|
-
* The record now in force. Present for a completed check, and for a `fresh`
|
|
39
|
-
* skip (where the still-valid record is what the skip deferred to).
|
|
40
|
-
*/
|
|
41
|
-
record?: CredentialHealthRecord;
|
|
42
|
-
/** Set when no check ran; `record` is then whatever was already stored. */
|
|
43
|
-
skipped?: CredentialCheckSkip;
|
|
44
|
-
/**
|
|
45
|
-
* The check ran, but its verdict was thrown away: the credential it judged
|
|
46
|
-
* was replaced or removed while it was in flight (see `clear`). `record` is
|
|
47
|
-
* what the check saw, not what is stored — nothing is.
|
|
48
|
-
*/
|
|
49
|
-
discarded?: true;
|
|
50
|
-
/** How long the check took, when one ran. */
|
|
51
|
-
latencyMs?: number;
|
|
52
|
-
}
|
|
53
|
-
/** Deployment-wide tuning for credential liveness checks. */
|
|
54
|
-
export interface CredentialHealthConfig {
|
|
55
|
-
/**
|
|
56
|
-
* Minimum seconds between checks of the same connector, across isolates (the
|
|
57
|
-
* verdict is persisted, so a Worker cron isolate and a request isolate share
|
|
58
|
-
* one clock). Default 900 (15 minutes). This is the bound on downstream cost:
|
|
59
|
-
* repeated status reads never each trigger a check.
|
|
60
|
-
*/
|
|
61
|
-
intervalSeconds?: number;
|
|
62
|
-
/** Max checks in flight at once during one sweep. Default 4. */
|
|
63
|
-
concurrency?: number;
|
|
64
|
-
/** Per-check deadline. Default 30 000, the probe default. */
|
|
65
|
-
timeoutMs?: number;
|
|
66
|
-
/**
|
|
67
|
-
* Let inbound authenticated `/mcp` and `/ui/data` traffic trigger a *due*
|
|
68
|
-
* sweep in the background (`ctx.waitUntil` where the runtime has it). Default
|
|
69
|
-
* true — it is the trigger that makes stale-credential detection work with no
|
|
70
|
-
* scheduler wired at all, and it cannot slow a request down or change a
|
|
71
|
-
* result. Set false to check only from `Connecta.checkCredentials()`.
|
|
72
|
-
*/
|
|
73
|
-
onRequest?: boolean;
|
|
74
|
-
}
|
|
75
|
-
export declare const DEFAULT_CREDENTIAL_CHECK_INTERVAL_SECONDS = 900;
|
|
76
|
-
export declare const DEFAULT_CREDENTIAL_CHECK_CONCURRENCY = 4;
|
|
77
|
-
/** What the checker needs from the registry, without depending on it. */
|
|
78
|
-
export interface CredentialHealthDeps {
|
|
79
|
-
listConnectors(): Connector[];
|
|
80
|
-
getConnector(id: string): Connector | undefined;
|
|
81
|
-
contextFor(id: string, baseUrl: string, requestScope?: object): ConnectorContext;
|
|
82
|
-
storage: KVStorage;
|
|
83
|
-
logger: Logger;
|
|
84
|
-
credentialVault?: CredentialVault;
|
|
85
|
-
}
|
|
86
|
-
export interface CredentialCheckOptions {
|
|
87
|
-
/** Check even connectors whose verdict is still fresh. */
|
|
88
|
-
force?: boolean;
|
|
89
|
-
/** Restrict the sweep to these connector ids. Default: every connector. */
|
|
90
|
-
ids?: string[];
|
|
91
|
-
/**
|
|
92
|
-
* @deprecated Ignored. Credential checks always create and close their own
|
|
93
|
-
* probe scope; no core path supplies an existing request scope.
|
|
94
|
-
*/
|
|
95
|
-
requestScope?: object;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Whether a connector holds a credential connecta stores AND exposes a way to
|
|
99
|
-
* ask whether it still works.
|
|
100
|
-
*
|
|
101
|
-
* Deliberately narrow. `listTools`/`callTool` are NOT liveness probes here: a
|
|
102
|
-
* tool call may mutate downstream state, and the catalog path is already covered
|
|
103
|
-
* by the existing probe. So a connector is checkable only through the two hooks
|
|
104
|
-
* that exist to answer exactly this question — `testCredential(s)` (what the
|
|
105
|
-
* Test button runs) and `status()` — and only when it has a credential of ours
|
|
106
|
-
* to be asked about: an operator-managed `credential`, or a stored downstream
|
|
107
|
-
* grant it reports via `hasStoredCredential`. A static-token connector stores
|
|
108
|
-
* nothing here and is never probed on a timer.
|
|
109
|
-
*
|
|
110
|
-
* Whether a test hook counts is `credentialTestRule`'s call, not this function's
|
|
111
|
-
* Credentials Test button and the credential API read (issue #55), so
|
|
112
|
-
* a credential the operator cannot test by hand is not one a sweep tests behind
|
|
113
|
-
* their back. A connector whose only hook cannot test its declared shape is
|
|
114
|
-
* checkable only if it also implements `status()`.
|
|
115
|
-
*/
|
|
116
|
-
export declare function isCheckableConnector(connector: Connector): boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Runs and caches credential liveness checks. One instance per `Registry`.
|
|
119
|
-
*
|
|
120
|
-
* Cost is bounded four ways, because a status surface an agent polls must never
|
|
121
|
-
* become a way to hammer a downstream auth endpoint:
|
|
122
|
-
*
|
|
123
|
-
* 1. **Eligibility** — only connectors holding a credential of ours are probed
|
|
124
|
-
* at all (`isCheckableConnector`), and only when something is actually stored.
|
|
125
|
-
* 2. **Freshness (cross-isolate)** — a persisted verdict younger than
|
|
126
|
-
* `intervalSeconds` short-circuits the check, so every isolate and every
|
|
127
|
-
* trigger share one budget.
|
|
128
|
-
* 3. **Sweep gate (per isolate)** — `sweepIfDue` runs at most one traffic-
|
|
129
|
-
* triggered sweep per interval per isolate, and never two at once, so a burst
|
|
130
|
-
* of requests costs one sweep, not one per request.
|
|
131
|
-
* 4. **Deadline + fan-out bound** — each check is bounded by `timeoutMs` and at
|
|
132
|
-
* most `concurrency` run together (the same shape as the
|
|
133
|
-
* `discovery.probeTimeoutMs` bound on the discovery fan-out, issue #19).
|
|
134
|
-
*/
|
|
135
|
-
export declare class CredentialHealthChecker {
|
|
136
|
-
private readonly deps;
|
|
137
|
-
private readonly store;
|
|
138
|
-
private readonly intervalMs;
|
|
139
|
-
private readonly concurrency;
|
|
140
|
-
private readonly timeoutMs;
|
|
141
|
-
private readonly onRequest;
|
|
142
|
-
/** Per-connector checks in flight in THIS isolate. */
|
|
143
|
-
private readonly inFlight;
|
|
144
|
-
/** Earliest a traffic-triggered sweep may run again in this isolate. */
|
|
145
|
-
private nextSweepAt;
|
|
146
|
-
private sweeping;
|
|
147
|
-
constructor(deps: CredentialHealthDeps, config?: CredentialHealthConfig);
|
|
148
|
-
/**
|
|
149
|
-
* The stored verdict, if any. No downstream I/O — and no storage read at all
|
|
150
|
-
* for a connector that stores no credential of ours, since only a checkable
|
|
151
|
-
* connector can ever have had a verdict written. That keeps
|
|
152
|
-
* `list_connectors({ probe: false })` exactly as cheap as it was for the
|
|
153
|
-
* deployments this feature does not apply to.
|
|
154
|
-
*/
|
|
155
|
-
healthFor(connectorId: string): Promise<CredentialHealthRecord | undefined>;
|
|
156
|
-
/**
|
|
157
|
-
* Record a liveness verdict observed elsewhere — today, the live status a
|
|
158
|
-
* `list_connectors({ probe: true })` just performed. Filtered by the same
|
|
159
|
-
* eligibility rule as a check, so this stays a record of *credential* health
|
|
160
|
-
* rather than a general status cache, and so it also counts against the
|
|
161
|
-
* freshness budget: an operator who just probed live does not get swept again
|
|
162
|
-
* moments later.
|
|
163
|
-
*/
|
|
164
|
-
record(connectorId: string, record: CredentialHealthRecord): Promise<void>;
|
|
165
|
-
/** Forget a connector's verdict — its credential just changed under us. */
|
|
166
|
-
clear(connectorId: string): Promise<void>;
|
|
167
|
-
/** Whether any connector in this deployment could be checked at all. */
|
|
168
|
-
hasCheckableConnectors(): boolean;
|
|
169
|
-
/**
|
|
170
|
-
* Check every (or the named) connector's stored credential and return one
|
|
171
|
-
* outcome per connector considered. Never rejects: a connector that throws,
|
|
172
|
-
* hangs past `timeoutMs`, or cannot be persisted becomes an `error` verdict.
|
|
173
|
-
*/
|
|
174
|
-
check(baseUrl: string, opts?: CredentialCheckOptions, defer?: DeferredWork): Promise<CredentialCheckResult[]>;
|
|
175
|
-
/**
|
|
176
|
-
* The traffic-triggered sweep: a promise to hand to `ctx.waitUntil`, or
|
|
177
|
-
* `undefined` when nothing is due (the common case, and free — no I/O). The
|
|
178
|
-
* gate is armed BEFORE the sweep starts, so a burst of concurrent requests
|
|
179
|
-
* produces one sweep.
|
|
180
|
-
*/
|
|
181
|
-
sweepIfDue(baseUrl: string, defer?: DeferredWork): Promise<CredentialCheckResult[]> | undefined;
|
|
182
|
-
private checkOne;
|
|
183
|
-
private recordOrNothing;
|
|
184
|
-
private runCheck;
|
|
185
|
-
/**
|
|
186
|
-
* `isCheckableConnector` re-asked against what is actually stored: the hook
|
|
187
|
-
* the declared shape selects, bound to a value that fits it (see
|
|
188
|
-
* {@link testHookFor}), or a `status()` to fall back on. Neither ⇒ there is no
|
|
189
|
-
* honest question to put to this connector.
|
|
190
|
-
*/
|
|
191
|
-
private canAsk;
|
|
192
|
-
/**
|
|
193
|
-
* Ask the connector whether the credential it holds still works — with no
|
|
194
|
-
* downstream mutation and no tool call. A credential test is preferred for a
|
|
195
|
-
* vault credential because it validates the stored value itself; `status()` is
|
|
196
|
-
* the downstream-OAuth answer (it refreshes the grant, which is the liveness
|
|
197
|
-
* question for a token).
|
|
198
|
-
*/
|
|
199
|
-
private probe;
|
|
200
|
-
private settle;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Whether a liveness verdict may DECIDE a connector's cached status.
|
|
204
|
-
*
|
|
205
|
-
* Only `auth_required` ever does, and only while nothing better has happened
|
|
206
|
-
* since. Two separate judgements:
|
|
207
|
-
*
|
|
208
|
-
* 1. **`error` is not credential evidence.** A check that timed out, threw, or
|
|
209
|
-
* got a 502 from the provider's status endpoint failed to *complete* — it
|
|
210
|
-
* learned nothing about the credential. Letting it set the status would flip
|
|
211
|
-
* a connector whose calls are fine to `error` for a whole interval on a DNS
|
|
212
|
-
* blip. Error verdicts stay visible in `credentialCheck` (an operator wants
|
|
213
|
-
* to know checks are failing) but the status keeps coming from observed real
|
|
214
|
-
* calls, which is evidence.
|
|
215
|
-
* 2. **A successful real call retires the verdict, except static shape drift.**
|
|
216
|
-
* Traffic beats a background probe, so a `lastSuccessAt` at or after
|
|
217
|
-
* `checkedAt` normally means the credential demonstrably works. Stored-shape
|
|
218
|
-
* drift is different: a credential-independent tool can succeed without
|
|
219
|
-
* making a missing declared field appear, so only replacement/removal clears
|
|
220
|
-
* that verdict.
|
|
221
|
-
*
|
|
222
|
-
* `auth_required` deliberately outranks an observed real-call *failure*: both
|
|
223
|
-
* say something is wrong, and only one of them carries the URL that fixes it.
|
|
224
|
-
* The failure stays visible as `lastError`.
|
|
225
|
-
*/
|
|
226
|
-
export declare function credentialVerdictApplies(record: CredentialHealthRecord | undefined, lastSuccessAt: string | undefined): boolean;
|
|
227
|
-
//# sourceMappingURL=credential-health.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credential-health.d.ts","sourceRoot":"","sources":["../src/credential-health.ts"],"names":[],"mappings":"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"}
|