@nvisy/sdk 0.24.0 → 0.26.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/CHANGELOG.md +48 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/{client-F-V1vFos.d.ts → client-CIL-TsfC.d.ts} +28 -4
- package/dist/client-CIL-TsfC.d.ts.map +1 -0
- package/dist/datatypes/index.d.ts +2 -2
- package/dist/{errors-CW5VZYIT.d.ts → errors-BOCjsE9G.d.ts} +2 -2
- package/dist/{errors-CW5VZYIT.d.ts.map → errors-BOCjsE9G.d.ts.map} +1 -1
- package/dist/{index-BZcmqZdX.d.ts → index-Zd5G8h44.d.ts} +1374 -760
- package/dist/index-Zd5G8h44.d.ts.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +1 -1
- package/dist/{services-CcLCLGws.js → services-CcdXk5hx.js} +89 -58
- package/dist/services-CcdXk5hx.js.map +1 -0
- package/dist/webhooks/index.d.ts +2 -2
- package/package.json +1 -1
- package/dist/client-F-V1vFos.d.ts.map +0 -1
- package/dist/index-BZcmqZdX.d.ts.map +0 -1
- package/dist/services-CcLCLGws.js.map +0 -1
|
@@ -5958,6 +5958,60 @@ interface paths {
|
|
|
5958
5958
|
patch?: never;
|
|
5959
5959
|
trace?: never;
|
|
5960
5960
|
};
|
|
5961
|
+
"/notifications/unread/events/": {
|
|
5962
|
+
parameters: {
|
|
5963
|
+
query?: never;
|
|
5964
|
+
header?: never;
|
|
5965
|
+
path?: never;
|
|
5966
|
+
cookie?: never;
|
|
5967
|
+
};
|
|
5968
|
+
/**
|
|
5969
|
+
* Stream unread notifications count
|
|
5970
|
+
* @description Opens a Server-Sent Events stream of the account's unread notification count. Emits the current count immediately, then each change as notifications arrive or are marked read, until the client disconnects. Each event's `data` is an `UnreadCountEvent` (see the response schema). Authenticate with a Bearer token via a `fetch`-based client; the native `EventSource` cannot send an `Authorization` header.
|
|
5971
|
+
*/
|
|
5972
|
+
get: {
|
|
5973
|
+
parameters: {
|
|
5974
|
+
query?: never;
|
|
5975
|
+
header?: never;
|
|
5976
|
+
path?: never;
|
|
5977
|
+
cookie?: never;
|
|
5978
|
+
};
|
|
5979
|
+
requestBody?: never;
|
|
5980
|
+
responses: {
|
|
5981
|
+
/** @description Server-sent event stream; each event's `data` is the payload below. */
|
|
5982
|
+
200: {
|
|
5983
|
+
headers: {
|
|
5984
|
+
[name: string]: unknown;
|
|
5985
|
+
};
|
|
5986
|
+
content: {
|
|
5987
|
+
"text/event-stream": components["schemas"]["UnreadCountEvent"];
|
|
5988
|
+
};
|
|
5989
|
+
};
|
|
5990
|
+
/**
|
|
5991
|
+
* @description HTTP error response representation with security-conscious design.
|
|
5992
|
+
*
|
|
5993
|
+
* This struct contains all the information needed to serialize an error
|
|
5994
|
+
* response, including the error name, message, HTTP status code, resource
|
|
5995
|
+
* information, and user-friendly messages.
|
|
5996
|
+
*/
|
|
5997
|
+
401: {
|
|
5998
|
+
headers: {
|
|
5999
|
+
[name: string]: unknown;
|
|
6000
|
+
};
|
|
6001
|
+
content: {
|
|
6002
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6003
|
+
};
|
|
6004
|
+
};
|
|
6005
|
+
};
|
|
6006
|
+
};
|
|
6007
|
+
put?: never;
|
|
6008
|
+
post?: never;
|
|
6009
|
+
delete?: never;
|
|
6010
|
+
options?: never;
|
|
6011
|
+
head?: never;
|
|
6012
|
+
patch?: never;
|
|
6013
|
+
trace?: never;
|
|
6014
|
+
};
|
|
5961
6015
|
"/notifications/read/": {
|
|
5962
6016
|
parameters: {
|
|
5963
6017
|
query?: never;
|
|
@@ -7688,13 +7742,6 @@ interface paths {
|
|
|
7688
7742
|
};
|
|
7689
7743
|
requestBody?: never;
|
|
7690
7744
|
responses: {
|
|
7691
|
-
/** @description no content */
|
|
7692
|
-
200: {
|
|
7693
|
-
headers: {
|
|
7694
|
-
[name: string]: unknown;
|
|
7695
|
-
};
|
|
7696
|
-
content?: never;
|
|
7697
|
-
};
|
|
7698
7745
|
/**
|
|
7699
7746
|
* @description HTTP error response representation with security-conscious design.
|
|
7700
7747
|
*
|
|
@@ -7745,13 +7792,6 @@ interface paths {
|
|
|
7745
7792
|
};
|
|
7746
7793
|
requestBody?: never;
|
|
7747
7794
|
responses: {
|
|
7748
|
-
/** @description no content */
|
|
7749
|
-
200: {
|
|
7750
|
-
headers: {
|
|
7751
|
-
[name: string]: unknown;
|
|
7752
|
-
};
|
|
7753
|
-
content?: never;
|
|
7754
|
-
};
|
|
7755
7795
|
/**
|
|
7756
7796
|
* @description HTTP error response representation with security-conscious design.
|
|
7757
7797
|
*
|
|
@@ -7832,22 +7872,28 @@ interface components {
|
|
|
7832
7872
|
/** @description Handle of the account. */
|
|
7833
7873
|
username: components["schemas"]["Handle"];
|
|
7834
7874
|
};
|
|
7835
|
-
/**
|
|
7875
|
+
/**
|
|
7876
|
+
* @description Response type for a workspace activity.
|
|
7877
|
+
*
|
|
7878
|
+
* The typed payload is nested under `payload`, so an activity is
|
|
7879
|
+
* `{ id, workspaceSlug, performedBy, payload: { activityType, <params...> }, createdAt }`.
|
|
7880
|
+
*/
|
|
7836
7881
|
Activity: {
|
|
7837
|
-
/** @description Type of activity. */
|
|
7838
|
-
activityType: components["schemas"]["ActivityType"];
|
|
7839
7882
|
/**
|
|
7840
7883
|
* Format: date-time
|
|
7841
7884
|
* @description When the activity occurred.
|
|
7842
7885
|
*/
|
|
7843
7886
|
createdAt: string;
|
|
7844
|
-
/** @description Human-readable description. */
|
|
7845
|
-
description: string;
|
|
7846
7887
|
/**
|
|
7847
7888
|
* Format: uuid
|
|
7848
7889
|
* @description Unique activity identifier.
|
|
7849
7890
|
*/
|
|
7850
7891
|
id: string;
|
|
7892
|
+
/**
|
|
7893
|
+
* @description The activity type and its typed params, absent when the stored params do
|
|
7894
|
+
* not decode into their `activityType`.
|
|
7895
|
+
*/
|
|
7896
|
+
payload?: components["schemas"]["ActivityPayload"];
|
|
7851
7897
|
/** @description Account that performed the activity. */
|
|
7852
7898
|
performedBy: components["schemas"]["AccountRef"];
|
|
7853
7899
|
/** @description Handle of the workspace this activity belongs to. */
|
|
@@ -7872,13 +7918,112 @@ interface components {
|
|
|
7872
7918
|
total?: number;
|
|
7873
7919
|
};
|
|
7874
7920
|
/**
|
|
7875
|
-
* @description
|
|
7921
|
+
* @description The typed payload of an audit-log activity, tagged by `activityType`.
|
|
7876
7922
|
*
|
|
7877
|
-
*
|
|
7878
|
-
*
|
|
7879
|
-
*
|
|
7923
|
+
* Each variant is one activity type carrying its own params. No rendered text is
|
|
7924
|
+
* included — the client localizes the copy from `activityType` and the params.
|
|
7925
|
+
* The `activityType` values match the `ACTIVITY_TYPE` enum.
|
|
7880
7926
|
*/
|
|
7881
|
-
|
|
7927
|
+
ActivityPayload: ({
|
|
7928
|
+
/** @constant */
|
|
7929
|
+
activityType: "workspace.created";
|
|
7930
|
+
} & components["schemas"]["WorkspaceActivityParams"]) | ({
|
|
7931
|
+
/** @constant */
|
|
7932
|
+
activityType: "workspace.updated";
|
|
7933
|
+
} & components["schemas"]["WorkspaceActivityParams"]) | ({
|
|
7934
|
+
/** @constant */
|
|
7935
|
+
activityType: "workspace.deleted";
|
|
7936
|
+
} & components["schemas"]["WorkspaceActivityParams"]) | ({
|
|
7937
|
+
/** @constant */
|
|
7938
|
+
activityType: "member.added";
|
|
7939
|
+
} & components["schemas"]["MemberActivityParams"]) | ({
|
|
7940
|
+
/** @constant */
|
|
7941
|
+
activityType: "member.updated";
|
|
7942
|
+
} & components["schemas"]["MemberActivityParams"]) | ({
|
|
7943
|
+
/** @constant */
|
|
7944
|
+
activityType: "member.deleted";
|
|
7945
|
+
} & components["schemas"]["MemberActivityParams"]) | ({
|
|
7946
|
+
/** @constant */
|
|
7947
|
+
activityType: "invite.created";
|
|
7948
|
+
} & components["schemas"]["InviteActivityParams"]) | ({
|
|
7949
|
+
/** @constant */
|
|
7950
|
+
activityType: "invite.accepted";
|
|
7951
|
+
} & components["schemas"]["InviteActivityParams"]) | ({
|
|
7952
|
+
/** @constant */
|
|
7953
|
+
activityType: "invite.declined";
|
|
7954
|
+
} & components["schemas"]["InviteActivityParams"]) | ({
|
|
7955
|
+
/** @constant */
|
|
7956
|
+
activityType: "invite.canceled";
|
|
7957
|
+
} & components["schemas"]["InviteActivityParams"]) | ({
|
|
7958
|
+
/** @constant */
|
|
7959
|
+
activityType: "connection.created";
|
|
7960
|
+
} & components["schemas"]["ConnectionActivityParams"]) | ({
|
|
7961
|
+
/** @constant */
|
|
7962
|
+
activityType: "connection.updated";
|
|
7963
|
+
} & components["schemas"]["ConnectionActivityParams"]) | ({
|
|
7964
|
+
/** @constant */
|
|
7965
|
+
activityType: "connection.deleted";
|
|
7966
|
+
} & components["schemas"]["ConnectionActivityParams"]) | ({
|
|
7967
|
+
/** @constant */
|
|
7968
|
+
activityType: "connection.sync.completed";
|
|
7969
|
+
} & components["schemas"]["ConnectionActivityParams"]) | ({
|
|
7970
|
+
/** @constant */
|
|
7971
|
+
activityType: "connection.sync.failed";
|
|
7972
|
+
} & components["schemas"]["ConnectionActivityParams"]) | ({
|
|
7973
|
+
/** @constant */
|
|
7974
|
+
activityType: "webhook.created";
|
|
7975
|
+
} & components["schemas"]["WebhookActivityParams"]) | ({
|
|
7976
|
+
/** @constant */
|
|
7977
|
+
activityType: "webhook.updated";
|
|
7978
|
+
} & components["schemas"]["WebhookActivityParams"]) | ({
|
|
7979
|
+
/** @constant */
|
|
7980
|
+
activityType: "webhook.deleted";
|
|
7981
|
+
} & components["schemas"]["WebhookActivityParams"]) | ({
|
|
7982
|
+
/** @constant */
|
|
7983
|
+
activityType: "webhook.triggered";
|
|
7984
|
+
} & components["schemas"]["WebhookActivityParams"]) | ({
|
|
7985
|
+
/** @constant */
|
|
7986
|
+
activityType: "file.created";
|
|
7987
|
+
} & components["schemas"]["FileActivityParams"]) | ({
|
|
7988
|
+
/** @constant */
|
|
7989
|
+
activityType: "file.updated";
|
|
7990
|
+
} & components["schemas"]["FileActivityParams"]) | ({
|
|
7991
|
+
/** @constant */
|
|
7992
|
+
activityType: "file.deleted";
|
|
7993
|
+
} & components["schemas"]["FileActivityParams"]) | ({
|
|
7994
|
+
/** @constant */
|
|
7995
|
+
activityType: "file.verified";
|
|
7996
|
+
} & components["schemas"]["FileActivityParams"]) | ({
|
|
7997
|
+
/** @constant */
|
|
7998
|
+
activityType: "pipeline.created";
|
|
7999
|
+
} & components["schemas"]["PipelineActivityParams"]) | ({
|
|
8000
|
+
/** @constant */
|
|
8001
|
+
activityType: "pipeline.updated";
|
|
8002
|
+
} & components["schemas"]["PipelineActivityParams"]) | ({
|
|
8003
|
+
/** @constant */
|
|
8004
|
+
activityType: "pipeline.deleted";
|
|
8005
|
+
} & components["schemas"]["PipelineActivityParams"]) | ({
|
|
8006
|
+
/** @constant */
|
|
8007
|
+
activityType: "pipeline.run.started";
|
|
8008
|
+
} & components["schemas"]["PipelineRunActivityParams"]) | ({
|
|
8009
|
+
/** @constant */
|
|
8010
|
+
activityType: "pipeline.run.analyzed";
|
|
8011
|
+
} & components["schemas"]["PipelineRunActivityParams"]) | ({
|
|
8012
|
+
/** @constant */
|
|
8013
|
+
activityType: "pipeline.run.completed";
|
|
8014
|
+
} & components["schemas"]["PipelineRunActivityParams"]) | ({
|
|
8015
|
+
/** @constant */
|
|
8016
|
+
activityType: "pipeline.run.failed";
|
|
8017
|
+
} & components["schemas"]["PipelineRunActivityParams"]) | ({
|
|
8018
|
+
/** @constant */
|
|
8019
|
+
activityType: "policy.created";
|
|
8020
|
+
} & components["schemas"]["PolicyActivityParams"]) | ({
|
|
8021
|
+
/** @constant */
|
|
8022
|
+
activityType: "policy.updated";
|
|
8023
|
+
} & components["schemas"]["PolicyActivityParams"]) | ({
|
|
8024
|
+
/** @constant */
|
|
8025
|
+
activityType: "policy.deleted";
|
|
8026
|
+
} & components["schemas"]["PolicyActivityParams"]);
|
|
7882
8027
|
/** @description Anthropic API credentials. */
|
|
7883
8028
|
AnthropicCredentials: {
|
|
7884
8029
|
/** @description Anthropic API key. */
|
|
@@ -7984,7 +8129,7 @@ interface components {
|
|
|
7984
8129
|
* UUID, a jurisdiction) is that layer's concern — it can encode it in the
|
|
7985
8130
|
* name or carry it separately.
|
|
7986
8131
|
*
|
|
7987
|
-
* [`Redaction`]: crate::entity::
|
|
8132
|
+
* [`Redaction`]: crate::entity::audit::AuditKind::Redaction
|
|
7988
8133
|
*/
|
|
7989
8134
|
Attribution: {
|
|
7990
8135
|
/** @description Human-readable description (e.g. `"right to erasure"`), when given. */
|
|
@@ -7993,170 +8138,90 @@ interface components {
|
|
|
7993
8138
|
name: string;
|
|
7994
8139
|
};
|
|
7995
8140
|
/**
|
|
7996
|
-
* @description
|
|
7997
|
-
*
|
|
7998
|
-
* Carries the encoded audio bytes; an optional filename aids diagnostics
|
|
7999
|
-
* and encoding inference (the container format a decoder should expect).
|
|
8000
|
-
* The recognizable text — a timestamped transcript — is *not* held here;
|
|
8001
|
-
* a speech-to-text [`Enricher`] stamps it onto the call's
|
|
8002
|
-
* [`artifacts`], keeping
|
|
8003
|
-
* `AudioData` the codec's payload alone.
|
|
8004
|
-
*
|
|
8005
|
-
* [`Audio`]: super::Audio
|
|
8006
|
-
* [`Enricher`]: crate::recognition::Enricher
|
|
8007
|
-
* [`artifacts`]: crate::recognition::RecognizerContext::artifacts
|
|
8008
|
-
*/
|
|
8009
|
-
AudioData: {
|
|
8010
|
-
/** @description Original filename, when known. */
|
|
8011
|
-
filename?: string;
|
|
8012
|
-
};
|
|
8013
|
-
/**
|
|
8014
|
-
* @description Detected piece of sensitive information within some medium.
|
|
8141
|
+
* @description One node in an entity's audit DAG: a thing that happened, with its
|
|
8142
|
+
* effect on confidence and its tamper-evident links.
|
|
8015
8143
|
*
|
|
8016
|
-
*
|
|
8017
|
-
*
|
|
8018
|
-
*
|
|
8019
|
-
*
|
|
8144
|
+
* Events are recorded on an entity's [`AuditLog`], forming the full audit
|
|
8145
|
+
* trail of its life: each recognizer that found it, the deduplication that
|
|
8146
|
+
* fused them, any score calibration, and the redaction that hid it. The
|
|
8147
|
+
* uniform spine (who, resulting score, when) is the same for every event; the
|
|
8148
|
+
* [`kind`] carries the event-specific detail *and* the explanation of why the
|
|
8149
|
+
* event happened.
|
|
8020
8150
|
*
|
|
8021
|
-
*
|
|
8151
|
+
* Each event links to its [`parents`] by their [`hash`]: a birth event (a
|
|
8152
|
+
* recognizer's first detection) has no parents, a normal step has one, and a
|
|
8153
|
+
* [fusion](crate::entity::audit::AuditLog::record_fusion) has several. Its own
|
|
8154
|
+
* [`hash`] folds the
|
|
8155
|
+
* payload together with the parents' hashes, so altering any event breaks
|
|
8156
|
+
* every event downstream of it: [`AuditLog::verify`] walks the DAG and
|
|
8157
|
+
* reports the first break.
|
|
8022
8158
|
*
|
|
8023
|
-
*
|
|
8024
|
-
*
|
|
8025
|
-
*
|
|
8026
|
-
* `elide`) combines their entities into one: the survivor's
|
|
8027
|
-
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
8028
|
-
* contributing recognition event, plus a deduplication event, is
|
|
8029
|
-
* retained in its provenance. The entity therefore carries its full
|
|
8030
|
-
* audit trail with it.
|
|
8159
|
+
* `entity.confidence` always equals the [`confidence`] of the most recent
|
|
8160
|
+
* event. The confidence *flowing in* is not stored: it is the parents'
|
|
8161
|
+
* [`confidence`], recovered from the DAG.
|
|
8031
8162
|
*
|
|
8032
|
-
* [`
|
|
8033
|
-
* [`
|
|
8034
|
-
* [`
|
|
8035
|
-
* [`
|
|
8036
|
-
* [`
|
|
8163
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
8164
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
8165
|
+
* [`AuditLog::verify`]: crate::entity::audit::AuditLog::verify
|
|
8166
|
+
* [`kind`]: AuditEvent::kind
|
|
8167
|
+
* [`parents`]: AuditEvent::parents
|
|
8168
|
+
* [`hash`]: AuditEvent::hash
|
|
8169
|
+
* [`confidence`]: AuditEvent::confidence
|
|
8037
8170
|
*/
|
|
8038
|
-
|
|
8039
|
-
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
8040
|
-
confidence: components["schemas"]["Confidence"];
|
|
8041
|
-
/**
|
|
8042
|
-
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
8043
|
-
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
8044
|
-
* same real-world thing.
|
|
8045
|
-
*/
|
|
8046
|
-
coref?: components["schemas"]["EntityCoRef"];
|
|
8047
|
-
/**
|
|
8048
|
-
* Format: uuid
|
|
8049
|
-
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
8050
|
-
* when the entity is assembled.
|
|
8051
|
-
*/
|
|
8052
|
-
id: string;
|
|
8053
|
-
/**
|
|
8054
|
-
* @description What kind of sensitive information this is (resolved via a
|
|
8055
|
-
* [`LabelCatalog`]).
|
|
8056
|
-
*/
|
|
8057
|
-
label: components["schemas"]["LabelRef"];
|
|
8058
|
-
/**
|
|
8059
|
-
* @description The language of this entity's surrounding text, when a recognizer
|
|
8060
|
-
* resolved one. `None` when unknown or language-agnostic.
|
|
8061
|
-
*/
|
|
8062
|
-
language?: string;
|
|
8063
|
-
/**
|
|
8064
|
-
* @description Location of the entity within the medium (fused, if it came from more
|
|
8065
|
-
* than one detection).
|
|
8066
|
-
*/
|
|
8067
|
-
location: components["schemas"]["AudioLocation"];
|
|
8171
|
+
AudioAuditEvent: {
|
|
8068
8172
|
/**
|
|
8069
|
-
* @description
|
|
8070
|
-
*
|
|
8173
|
+
* @description Confidence after this event: the entity's effective confidence once it
|
|
8174
|
+
* has happened.
|
|
8071
8175
|
*/
|
|
8072
|
-
|
|
8176
|
+
confidence: components["schemas"]["Confidence"];
|
|
8073
8177
|
/**
|
|
8074
|
-
* @description
|
|
8075
|
-
*
|
|
8076
|
-
*
|
|
8077
|
-
* context lives (which OCR block, which speaker) that the geometric
|
|
8078
|
-
* [`location`] cannot hold. `None` for entities not found via text
|
|
8079
|
-
* recognition (e.g. a VLM box). Provenance, not a coordinate: redaction
|
|
8080
|
-
* uses [`location`]; an audit uses this with the artifact.
|
|
8178
|
+
* @description This event's hash, over its payload and its parents' hashes. Assigned by
|
|
8179
|
+
* [`AuditLog`] when the event is recorded; read it through
|
|
8180
|
+
* [`hash`](Self::hash). Recomputing it is how the DAG is verified.
|
|
8081
8181
|
*
|
|
8082
|
-
* [`
|
|
8083
|
-
|
|
8084
|
-
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
8085
|
-
};
|
|
8086
|
-
/**
|
|
8087
|
-
* @description One recognized entity plus the optional reviewer override.
|
|
8088
|
-
*
|
|
8089
|
-
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
8090
|
-
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
8091
|
-
* derivation needs them schema-able. All four modalities elide
|
|
8092
|
-
* ships satisfy these under the `serde` + `schema` features.
|
|
8093
|
-
*/
|
|
8094
|
-
AudioEntityRecord: {
|
|
8095
|
-
/** @description The elide entity, as recognition produced it. */
|
|
8096
|
-
entity: components["schemas"]["AudioEntity"];
|
|
8097
|
-
/**
|
|
8098
|
-
* @description Reviewer-supplied redaction override.
|
|
8182
|
+
* Not publicly settable: only [`AuditLog`] assigns it, so a caller cannot
|
|
8183
|
+
* forge a self-consistent event outside the recording path.
|
|
8099
8184
|
*
|
|
8100
|
-
* `
|
|
8101
|
-
* `Some(...)` overrides that rule for this specific entity
|
|
8102
|
-
* at apply time. Reviewer overrides take precedence over
|
|
8103
|
-
* every policy rule and inherit the authority of the
|
|
8104
|
-
* [`Review::policy_id`] they name — the audit event's
|
|
8105
|
-
* attribution stamps that policy so the trail names the
|
|
8106
|
-
* authority under which the override fired.
|
|
8185
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
8107
8186
|
*/
|
|
8108
|
-
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
* @description One thing that happened to an entity, with its effect on confidence.
|
|
8112
|
-
*
|
|
8113
|
-
* Events are recorded in order on an entity's [`Provenance`], forming
|
|
8114
|
-
* the full audit trail of its life: each recognizer that found it, the
|
|
8115
|
-
* deduplication that fused them, any score calibration, and the
|
|
8116
|
-
* redaction that hid it. The uniform spine (who, before/after score,
|
|
8117
|
-
* when, why) is the same for every event; the [`kind`] carries the
|
|
8118
|
-
* event-specific detail.
|
|
8119
|
-
*
|
|
8120
|
-
* `entity.confidence` always equals the [`after`] of the most recent
|
|
8121
|
-
* event.
|
|
8122
|
-
*
|
|
8123
|
-
* [`Provenance`]: crate::entity::provenance::Provenance
|
|
8124
|
-
* [`kind`]: Event::kind
|
|
8125
|
-
* [`after`]: Event::after
|
|
8126
|
-
*/
|
|
8127
|
-
AudioEvent: {
|
|
8128
|
-
/** @description Confidence after this event. */
|
|
8129
|
-
after: components["schemas"]["Confidence"];
|
|
8130
|
-
/** @description When the event happened (UTC). */
|
|
8131
|
-
at: string;
|
|
8187
|
+
hash: components["schemas"]["AuditHash"];
|
|
8188
|
+
/** @description Kind of event, with its event-specific detail and its rationale. */
|
|
8189
|
+
kind: components["schemas"]["AudioAuditKind"];
|
|
8132
8190
|
/**
|
|
8133
|
-
* @description
|
|
8134
|
-
*
|
|
8191
|
+
* @description The events this one follows, by their hash. Empty for a birth event, one
|
|
8192
|
+
* entry for a normal step, several for a fusion. Assigned by [`AuditLog`]
|
|
8193
|
+
* when the event is recorded; read it through [`parents`](Self::parents).
|
|
8194
|
+
*
|
|
8195
|
+
* Not publicly settable: the links are the tamper-evident structure, so
|
|
8196
|
+
* only [`AuditLog::record`] / [`AuditLog::record_fusion`] assign them.
|
|
8197
|
+
*
|
|
8198
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
8199
|
+
* [`AuditLog::record`]: crate::entity::audit::AuditLog::record
|
|
8200
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
8135
8201
|
*/
|
|
8136
|
-
|
|
8137
|
-
/** @description Kind of event, with its event-specific detail. */
|
|
8138
|
-
kind: components["schemas"]["AudioEventKind"];
|
|
8139
|
-
/** @description Free-text explanation of what the event did and why. */
|
|
8140
|
-
reason: string;
|
|
8202
|
+
parents: components["schemas"]["AuditHash"][];
|
|
8141
8203
|
/**
|
|
8142
8204
|
* @description Who produced this event: a recognizer name, a deduplication strategy,
|
|
8143
8205
|
* an operator, or whatever acted.
|
|
8144
8206
|
*/
|
|
8145
8207
|
source: string;
|
|
8208
|
+
/** @description When the event happened (UTC). */
|
|
8209
|
+
timestamp: string;
|
|
8146
8210
|
};
|
|
8147
8211
|
/**
|
|
8148
|
-
* @description Kind of an [`
|
|
8212
|
+
* @description Kind of an [`AuditEvent`], carrying its event-specific detail and the
|
|
8213
|
+
* rationale for why it happened.
|
|
8149
8214
|
*
|
|
8150
8215
|
* `#[non_exhaustive]`: new event kinds (verification, annotation, …)
|
|
8151
8216
|
* can be added compatibly. The recognition kinds ([`Pattern`],
|
|
8152
8217
|
* [`Model`]) carry the matched [`Location`]; the rest carry their own
|
|
8153
8218
|
* data.
|
|
8154
8219
|
*
|
|
8155
|
-
* [`Pattern`]:
|
|
8156
|
-
* [`Model`]:
|
|
8220
|
+
* [`Pattern`]: AuditKind::Pattern
|
|
8221
|
+
* [`Model`]: AuditKind::Model
|
|
8157
8222
|
* [`Location`]: Modality::Location
|
|
8158
8223
|
*/
|
|
8159
|
-
|
|
8224
|
+
AudioAuditKind: {
|
|
8160
8225
|
/** @constant */
|
|
8161
8226
|
kind: "pattern";
|
|
8162
8227
|
/** @description Where the recognizer matched. */
|
|
@@ -8220,7 +8285,7 @@ interface components {
|
|
|
8220
8285
|
* it is the keyword resolved through the modality's [`locate`] (a
|
|
8221
8286
|
* pixel box for image, a time span for audio, the byte range for
|
|
8222
8287
|
* text/tabular). `None` when the keyword's stream range could not be
|
|
8223
|
-
* placed
|
|
8288
|
+
* placed, symmetric with a match the recognizer itself drops.
|
|
8224
8289
|
*
|
|
8225
8290
|
* [`locate`]: crate::modality::TextRecognizable::locate
|
|
8226
8291
|
*/
|
|
@@ -8238,77 +8303,216 @@ interface components {
|
|
|
8238
8303
|
/** @description How much the output leaks about the original. */
|
|
8239
8304
|
leak_profile: components["schemas"]["LeakProfile"];
|
|
8240
8305
|
/**
|
|
8241
|
-
* @description Which selection rule chose this operator
|
|
8306
|
+
* @description Which selection rule chose this operator: the automatic "why"
|
|
8242
8307
|
* (matched a label, a tag, a predicate, or the fallback).
|
|
8243
8308
|
*/
|
|
8244
8309
|
matched_by: components["schemas"]["RuleMatch"];
|
|
8245
8310
|
/** @description Which operator (name + version) ran. */
|
|
8246
8311
|
operator: components["schemas"]["OperatorId"];
|
|
8312
|
+
/**
|
|
8313
|
+
* @description BLAKE3 digest of the original text the operator hid, when the
|
|
8314
|
+
* redaction layer recorded it. Proves *what* was redacted without
|
|
8315
|
+
* storing the plaintext; `None` when the operator did not capture it.
|
|
8316
|
+
*/
|
|
8317
|
+
span_hash?: components["schemas"]["AuditHash"];
|
|
8318
|
+
/**
|
|
8319
|
+
* Format: uint32
|
|
8320
|
+
* @description Byte length of the original text the operator hid, paired with
|
|
8321
|
+
* [`span_hash`](Self::Redaction::span_hash). `None` when not captured.
|
|
8322
|
+
*/
|
|
8323
|
+
span_length?: number;
|
|
8247
8324
|
};
|
|
8248
8325
|
/**
|
|
8249
|
-
* @description
|
|
8250
|
-
*
|
|
8326
|
+
* @description Full audit trail of an [`Entity`]: every [`AuditEvent`] in its life, as a
|
|
8327
|
+
* tamper-evident DAG.
|
|
8251
8328
|
*
|
|
8252
|
-
*
|
|
8253
|
-
*
|
|
8254
|
-
*
|
|
8255
|
-
*
|
|
8256
|
-
*
|
|
8257
|
-
*
|
|
8258
|
-
* review consumer can resolve back to the document.
|
|
8329
|
+
* Where Presidio keeps a shallow, optional, per-stage explanation that is
|
|
8330
|
+
* stripped by default, an `AuditLog` is always present and records the
|
|
8331
|
+
* entity's *entire* life: each recognizer that found it, the deduplication
|
|
8332
|
+
* that fused them, any confidence calibration, and the redaction that hid it.
|
|
8333
|
+
* Nothing is collapsed: every recognizer keeps its own recognition event with
|
|
8334
|
+
* its location and score.
|
|
8259
8335
|
*
|
|
8260
|
-
*
|
|
8261
|
-
*
|
|
8336
|
+
* The events form a **directed acyclic graph**, not a flat list. A recognizer
|
|
8337
|
+
* records a birth event (no parents); each later step links to the event it
|
|
8338
|
+
* follows; and a [fusion](Self::record_fusion) links to *several* parents at
|
|
8339
|
+
* once: the heads of the trails it combines. This is the true shape of a
|
|
8340
|
+
* deduplicated entity: two recognizers are siblings, then a fusion joins them.
|
|
8341
|
+
* The events are stored in the order they were recorded, which is a
|
|
8342
|
+
* topological order of the DAG (a parent is always recorded before its
|
|
8343
|
+
* children).
|
|
8262
8344
|
*
|
|
8263
|
-
*
|
|
8264
|
-
*/
|
|
8265
|
-
AudioHint: {
|
|
8266
|
-
/** @description The hint text itself (a column header, a field name). */
|
|
8267
|
-
data: components["schemas"]["AudioData"];
|
|
8268
|
-
/** @description Where the hint text sits in the source (the header cell, the key). */
|
|
8269
|
-
location: components["schemas"]["AudioLocation"];
|
|
8270
|
-
};
|
|
8271
|
-
/**
|
|
8272
|
-
* @description A [`TimeSpan`] within audio content, with an optional speaker label.
|
|
8345
|
+
* Two chains ride the DAG's edges:
|
|
8273
8346
|
*
|
|
8274
|
-
*
|
|
8275
|
-
*
|
|
8276
|
-
*
|
|
8277
|
-
*
|
|
8278
|
-
*
|
|
8347
|
+
* - a **confidence chain**, where each event's [`confidence`] is the entity's
|
|
8348
|
+
* effective score after it; the score flowing *in* is its parents'
|
|
8349
|
+
* confidence, so [`final_confidence`] and the full history are recoverable;
|
|
8350
|
+
* - a **hash chain**, where each event's [`hash`] folds its payload together
|
|
8351
|
+
* with its parents' hashes, so any edit, reorder, insertion, or deletion of
|
|
8352
|
+
* an earlier event breaks every event downstream. [`verify`] walks the DAG
|
|
8353
|
+
* and reports the first break.
|
|
8279
8354
|
*
|
|
8280
|
-
* [`
|
|
8355
|
+
* [`Entity`]: crate::entity::Entity
|
|
8356
|
+
* [`confidence`]: AuditEvent::confidence
|
|
8357
|
+
* [`hash`]: AuditEvent::hash
|
|
8358
|
+
* [`final_confidence`]: Self::final_confidence
|
|
8359
|
+
* [`verify`]: Self::verify
|
|
8281
8360
|
*/
|
|
8282
|
-
|
|
8283
|
-
/** @description Time span the location covers, in the stream's timeline. */
|
|
8284
|
-
span: components["schemas"]["TimeSpan"];
|
|
8285
|
-
/** @description Diarization label of the speaker, when a diarizer assigned one. */
|
|
8286
|
-
speaker_id?: string;
|
|
8287
|
-
};
|
|
8361
|
+
AudioAuditLog: components["schemas"]["AudioAuditEvent"][];
|
|
8288
8362
|
/**
|
|
8289
|
-
* @description
|
|
8290
|
-
* order.
|
|
8291
|
-
*
|
|
8292
|
-
* This is the model's answer to "full provenance": where Presidio keeps
|
|
8293
|
-
* a shallow, optional, per-stage explanation that is stripped by
|
|
8294
|
-
* default, a `Provenance` is always present and records the entity's
|
|
8295
|
-
* *entire* life as an ordered list of events: each recognizer that
|
|
8296
|
-
* found it, the deduplication that fused them, any confidence
|
|
8297
|
-
* calibration, and the redaction that hid it. Nothing is collapsed:
|
|
8298
|
-
* every recognizer keeps its own recognition event with its location
|
|
8299
|
-
* and score.
|
|
8363
|
+
* @description Per-call payload a recognizer inspects for the [`Audio`] modality.
|
|
8300
8364
|
*
|
|
8301
|
-
*
|
|
8302
|
-
*
|
|
8303
|
-
*
|
|
8365
|
+
* Carries the encoded audio bytes; an optional filename aids diagnostics
|
|
8366
|
+
* and encoding inference (the container format a decoder should expect).
|
|
8367
|
+
* The recognizable text — a timestamped transcript — is *not* held here;
|
|
8368
|
+
* a speech-to-text [`Enricher`] stamps it onto the call's
|
|
8369
|
+
* [`artifacts`], keeping
|
|
8370
|
+
* `AudioData` the codec's payload alone.
|
|
8371
|
+
*
|
|
8372
|
+
* [`Audio`]: super::Audio
|
|
8373
|
+
* [`Enricher`]: crate::recognition::Enricher
|
|
8374
|
+
* [`artifacts`]: crate::recognition::RecognizerContext::artifacts
|
|
8375
|
+
*/
|
|
8376
|
+
AudioData: {
|
|
8377
|
+
/** @description Original filename, when known. */
|
|
8378
|
+
filename?: string;
|
|
8379
|
+
};
|
|
8380
|
+
/**
|
|
8381
|
+
* @description Detected piece of sensitive information within some medium.
|
|
8382
|
+
*
|
|
8383
|
+
* Generic over the [`Modality`] `M`, which is what makes the model
|
|
8384
|
+
* multimodal: a text pipeline yields `Entity<Text>`, an audio pipeline
|
|
8385
|
+
* `Entity<Audio>`, and so on. The entity's location is the modality's
|
|
8386
|
+
* [`Location`] type, `M::Location`.
|
|
8387
|
+
*
|
|
8388
|
+
* # Birth and fusion
|
|
8389
|
+
*
|
|
8390
|
+
* A recognizer emits an entity directly, carrying a single recognition
|
|
8391
|
+
* [`AuditEvent`] (its own finding) in the entity's [`audit`] trail. When
|
|
8392
|
+
* several recognizers find the same thing, a fusion step (in
|
|
8393
|
+
* `elide`) combines their entities into one: the survivor's
|
|
8394
|
+
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
8395
|
+
* contributing recognition event, plus a deduplication event, is
|
|
8396
|
+
* retained in its audit trail. The entity therefore carries its full
|
|
8397
|
+
* audit trail with it.
|
|
8398
|
+
*
|
|
8399
|
+
* [`Location`]: Modality::Location
|
|
8400
|
+
* [`AuditEvent`]: crate::entity::audit::AuditEvent
|
|
8401
|
+
* [`audit`]: Entity::audit
|
|
8402
|
+
* [`location`]: Entity::location
|
|
8403
|
+
* [`confidence`]: Entity::confidence
|
|
8404
|
+
*/
|
|
8405
|
+
AudioEntity: {
|
|
8406
|
+
/**
|
|
8407
|
+
* @description Tamper-evident audit trail: every contributing detection, the fusion
|
|
8408
|
+
* event if any, and the redaction that hid it, as a hash-linked DAG.
|
|
8409
|
+
*/
|
|
8410
|
+
audit: components["schemas"]["AudioAuditLog"];
|
|
8411
|
+
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
8412
|
+
confidence: components["schemas"]["Confidence"];
|
|
8413
|
+
/**
|
|
8414
|
+
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
8415
|
+
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
8416
|
+
* same real-world thing.
|
|
8417
|
+
*/
|
|
8418
|
+
coref?: components["schemas"]["EntityCoRef"];
|
|
8419
|
+
/**
|
|
8420
|
+
* Format: uuid
|
|
8421
|
+
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
8422
|
+
* when the entity is assembled.
|
|
8423
|
+
*/
|
|
8424
|
+
id: string;
|
|
8425
|
+
/**
|
|
8426
|
+
* @description What kind of sensitive information this is (resolved via a
|
|
8427
|
+
* [`LabelCatalog`]).
|
|
8428
|
+
*/
|
|
8429
|
+
label: components["schemas"]["LabelRef"];
|
|
8430
|
+
/**
|
|
8431
|
+
* @description The language of this entity's surrounding text, when a recognizer
|
|
8432
|
+
* resolved one. `None` when unknown or language-agnostic.
|
|
8433
|
+
*/
|
|
8434
|
+
language?: string;
|
|
8435
|
+
/**
|
|
8436
|
+
* @description Location of the entity within the medium (fused, if it came from more
|
|
8437
|
+
* than one detection).
|
|
8438
|
+
*/
|
|
8439
|
+
location: components["schemas"]["AudioLocation"];
|
|
8440
|
+
/**
|
|
8441
|
+
* @description Byte range of the match in the *recognized text* it was found in (the
|
|
8442
|
+
* OCR layout text, the audio transcript, or the text payload itself) —
|
|
8443
|
+
* the stable key back into that enrichment artifact, where the rich
|
|
8444
|
+
* context lives (which OCR block, which speaker) that the geometric
|
|
8445
|
+
* [`location`] cannot hold. `None` for entities not found via text
|
|
8446
|
+
* recognition (e.g. a VLM box). An audit key, not a coordinate: redaction
|
|
8447
|
+
* uses [`location`]; an audit uses this with the artifact.
|
|
8448
|
+
*
|
|
8449
|
+
* [`location`]: Entity::location
|
|
8450
|
+
*/
|
|
8451
|
+
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
8452
|
+
};
|
|
8453
|
+
/**
|
|
8454
|
+
* @description One recognized entity plus the optional reviewer override.
|
|
8455
|
+
*
|
|
8456
|
+
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
8457
|
+
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
8458
|
+
* derivation needs them schema-able. All four modalities elide
|
|
8459
|
+
* ships satisfy these under the `serde` + `schema` features.
|
|
8460
|
+
*/
|
|
8461
|
+
AudioEntityRecord: {
|
|
8462
|
+
/** @description The elide entity, as recognition produced it. */
|
|
8463
|
+
entity: components["schemas"]["AudioEntity"];
|
|
8464
|
+
/**
|
|
8465
|
+
* @description Reviewer-supplied redaction override.
|
|
8466
|
+
*
|
|
8467
|
+
* `None` means "use the matching policy rule's decision";
|
|
8468
|
+
* `Some(...)` overrides that rule for this specific entity
|
|
8469
|
+
* at apply time. Reviewer overrides take precedence over
|
|
8470
|
+
* every policy rule and inherit the authority of the
|
|
8471
|
+
* [`Review::policy_id`] they name — the audit event's
|
|
8472
|
+
* attribution stamps that policy so the trail names the
|
|
8473
|
+
* authority under which the override fired.
|
|
8474
|
+
*/
|
|
8475
|
+
review?: components["schemas"]["Review"];
|
|
8476
|
+
};
|
|
8477
|
+
/**
|
|
8478
|
+
* @description Located, typed piece of context a recognizer may treat as in-context
|
|
8479
|
+
* for a nearby value.
|
|
8480
|
+
*
|
|
8481
|
+
* Out-of-band by nature: a hint is *not* a sub-span of the value it
|
|
8482
|
+
* informs — it lives elsewhere in the source (a table's column header, a
|
|
8483
|
+
* JSON object key, a log field name). So `location` points at where the
|
|
8484
|
+
* hint text actually sits, and `data` is the hint text itself. Carrying
|
|
8485
|
+
* the location (rather than a bare string) lets a confidence boost record
|
|
8486
|
+
* *which* hint lifted a score and *where* it came from — provenance a
|
|
8487
|
+
* review consumer can resolve back to the document.
|
|
8488
|
+
*
|
|
8489
|
+
* Mirrors [`Entity`]'s `location` + `data` shape, so the same
|
|
8490
|
+
* serialization and lifting patterns apply.
|
|
8304
8491
|
*
|
|
8305
8492
|
* [`Entity`]: crate::entity::Entity
|
|
8306
|
-
* [`after`]: Event::after
|
|
8307
|
-
* [`before`]: Event::before
|
|
8308
8493
|
*/
|
|
8309
|
-
|
|
8310
|
-
/** @description
|
|
8311
|
-
|
|
8494
|
+
AudioHint: {
|
|
8495
|
+
/** @description The hint text itself (a column header, a field name). */
|
|
8496
|
+
data: components["schemas"]["AudioData"];
|
|
8497
|
+
/** @description Where the hint text sits in the source (the header cell, the key). */
|
|
8498
|
+
location: components["schemas"]["AudioLocation"];
|
|
8499
|
+
};
|
|
8500
|
+
/**
|
|
8501
|
+
* @description A [`TimeSpan`] within audio content, with an optional speaker label.
|
|
8502
|
+
*
|
|
8503
|
+
* The time span is the coordinate; ordering and overlap consider only it.
|
|
8504
|
+
* The optional [`speaker_id`] is a diarization label,
|
|
8505
|
+
* not a coordinate: two utterances from different speakers at the same
|
|
8506
|
+
* instant still overlap in time, so the speaker is carried for provenance
|
|
8507
|
+
* but excluded from comparison.
|
|
8508
|
+
*
|
|
8509
|
+
* [`speaker_id`]: Self::speaker_id
|
|
8510
|
+
*/
|
|
8511
|
+
AudioLocation: {
|
|
8512
|
+
/** @description Time span the location covers, in the stream's timeline. */
|
|
8513
|
+
span: components["schemas"]["TimeSpan"];
|
|
8514
|
+
/** @description Diarization label of the speaker, when a diarizer assigned one. */
|
|
8515
|
+
speaker_id?: string;
|
|
8312
8516
|
};
|
|
8313
8517
|
/** @description Operator spec a `redact` audio rule carries. */
|
|
8314
8518
|
AudioRedaction: {
|
|
@@ -8466,6 +8670,21 @@ interface components {
|
|
|
8466
8670
|
*/
|
|
8467
8671
|
ocrMode: components["schemas"]["OcrMode"];
|
|
8468
8672
|
};
|
|
8673
|
+
/**
|
|
8674
|
+
* @description A 32-byte BLAKE3 digest.
|
|
8675
|
+
*
|
|
8676
|
+
* The tamper-evident link in an [`AuditLog`] DAG: each [`AuditEvent`] hashes
|
|
8677
|
+
* its payload together with its parents' hashes, so altering any event breaks
|
|
8678
|
+
* every event downstream of it. Displays and (with the `serde` feature)
|
|
8679
|
+
* (de)serializes as lowercase hex.
|
|
8680
|
+
*
|
|
8681
|
+
* The all-zero hash is [`GENESIS`](AuditHash::GENESIS), the link a birth event
|
|
8682
|
+
* (one with no parents) chains from.
|
|
8683
|
+
*
|
|
8684
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
8685
|
+
* [`AuditEvent`]: crate::entity::audit::AuditEvent
|
|
8686
|
+
*/
|
|
8687
|
+
AuditHash: string;
|
|
8469
8688
|
/** @description Response returned after successful authentication (login/signup). */
|
|
8470
8689
|
AuthToken: {
|
|
8471
8690
|
/** @description The JWT API token for authentication. */
|
|
@@ -8545,6 +8764,24 @@ interface components {
|
|
|
8545
8764
|
/** @description Minimum corner (top-left, conventionally). */
|
|
8546
8765
|
min: components["schemas"]["Point"];
|
|
8547
8766
|
};
|
|
8767
|
+
/**
|
|
8768
|
+
* @description The coarse group a [`Label`] belongs to, for organizing detected entities
|
|
8769
|
+
* by kind (`financial`, `health`, `identity`, …).
|
|
8770
|
+
*
|
|
8771
|
+
* A category answers "what *sort* of information is this" at a display level:
|
|
8772
|
+
* a consumer groups a redaction audit into sections by category. It is
|
|
8773
|
+
* distinct from a label's [`tags`], which are cross-cutting sensitivity
|
|
8774
|
+
* markers (`pii`, `phi`, `pci`) a label may carry several of; a label has at
|
|
8775
|
+
* most **one** category. Built-in labels ship with a category; a custom
|
|
8776
|
+
* [`Label`] has none unless one is set.
|
|
8777
|
+
*
|
|
8778
|
+
* The value is an open, lowercase `snake_case` identifier, so a custom label
|
|
8779
|
+
* can define its own category rather than being confined to the shipped set.
|
|
8780
|
+
*
|
|
8781
|
+
* [`Label`]: super::Label
|
|
8782
|
+
* [`tags`]: super::Label::tags
|
|
8783
|
+
*/
|
|
8784
|
+
Category: string;
|
|
8548
8785
|
/**
|
|
8549
8786
|
* @description Text a [`TextRedaction::Clamp`] emits for out-of-range values.
|
|
8550
8787
|
*
|
|
@@ -8605,7 +8842,7 @@ interface components {
|
|
|
8605
8842
|
* Format: float
|
|
8606
8843
|
* @description Confidence score in the closed range `0.0..=1.0`.
|
|
8607
8844
|
*
|
|
8608
|
-
* Carried by every provenance [`
|
|
8845
|
+
* Carried by every provenance [`AuditEvent`] (the `before`/`after` of a
|
|
8609
8846
|
* recognition, fusion, or calibration) and by the effective confidence
|
|
8610
8847
|
* of an [`Entity`]. The newtype enforces the range at construction so
|
|
8611
8848
|
* no downstream code has to defend against values outside `[0, 1]`.
|
|
@@ -8615,7 +8852,7 @@ interface components {
|
|
|
8615
8852
|
* *cutoff* configured to filter scores. Compare the two with
|
|
8616
8853
|
* [`ConfidenceThreshold::passes`].
|
|
8617
8854
|
*
|
|
8618
|
-
* [`
|
|
8855
|
+
* [`AuditEvent`]: crate::entity::audit::AuditEvent
|
|
8619
8856
|
* [`Entity`]: crate::entity::Entity
|
|
8620
8857
|
*/
|
|
8621
8858
|
Confidence: number;
|
|
@@ -8662,6 +8899,14 @@ interface components {
|
|
|
8662
8899
|
/** @description Handle of the workspace this connection belongs to. */
|
|
8663
8900
|
workspaceSlug: components["schemas"]["Handle"];
|
|
8664
8901
|
};
|
|
8902
|
+
/** @description Params of a connection activity (`connection.*`). */
|
|
8903
|
+
ConnectionActivityParams: {
|
|
8904
|
+
/**
|
|
8905
|
+
* Format: uuid
|
|
8906
|
+
* @description Id of the connection.
|
|
8907
|
+
*/
|
|
8908
|
+
connectionId: string;
|
|
8909
|
+
};
|
|
8665
8910
|
/**
|
|
8666
8911
|
* @description A fully-typed connection configuration for any capability.
|
|
8667
8912
|
*
|
|
@@ -8739,7 +8984,7 @@ interface components {
|
|
|
8739
8984
|
/** @description Account that triggered the sync. */
|
|
8740
8985
|
triggeredBy: components["schemas"]["AccountRef"];
|
|
8741
8986
|
};
|
|
8742
|
-
/** @description Params of a `connection
|
|
8987
|
+
/** @description Params of a `connection.sync.completed` notification. */
|
|
8743
8988
|
ConnectionSyncCompletedParams: {
|
|
8744
8989
|
/**
|
|
8745
8990
|
* Format: uuid
|
|
@@ -8752,7 +8997,7 @@ interface components {
|
|
|
8752
8997
|
*/
|
|
8753
8998
|
recordsSynced?: number;
|
|
8754
8999
|
};
|
|
8755
|
-
/** @description Params of a `connection
|
|
9000
|
+
/** @description Params of a `connection.sync.failed` notification. */
|
|
8756
9001
|
ConnectionSyncFailedParams: {
|
|
8757
9002
|
/**
|
|
8758
9003
|
* Format: uuid
|
|
@@ -9163,6 +9408,16 @@ interface components {
|
|
|
9163
9408
|
/** @description Handle of the workspace this file belongs to. */
|
|
9164
9409
|
workspaceSlug: components["schemas"]["Handle"];
|
|
9165
9410
|
};
|
|
9411
|
+
/** @description Params of a file activity (`file.*`). */
|
|
9412
|
+
FileActivityParams: {
|
|
9413
|
+
/**
|
|
9414
|
+
* Format: uuid
|
|
9415
|
+
* @description Id of the file.
|
|
9416
|
+
*/
|
|
9417
|
+
fileId: string;
|
|
9418
|
+
/** @description Display name of the file. */
|
|
9419
|
+
fileName: string;
|
|
9420
|
+
};
|
|
9166
9421
|
/**
|
|
9167
9422
|
* @description The role a file plays, which drives its data-retention scope and whether it
|
|
9168
9423
|
* is a user-facing document.
|
|
@@ -9221,6 +9476,29 @@ interface components {
|
|
|
9221
9476
|
*/
|
|
9222
9477
|
serviceAccountPath: string;
|
|
9223
9478
|
};
|
|
9479
|
+
/**
|
|
9480
|
+
* @description The GDPR Article 9 template config — treatment axis fused
|
|
9481
|
+
* with sensitive-scope axis. Carried directly by
|
|
9482
|
+
* [`crate::PolicyTemplate::GdprArticle9`].
|
|
9483
|
+
*/
|
|
9484
|
+
GdprArticle9: {
|
|
9485
|
+
/**
|
|
9486
|
+
* @description Which sensitive-data labels to cover. Defaults to
|
|
9487
|
+
* [`GdprSensitiveScope::Article9`] (nine Article 9(1)
|
|
9488
|
+
* categories only). Pick
|
|
9489
|
+
* [`GdprSensitiveScope::Article9WithReidHardening`] to add
|
|
9490
|
+
* Recital 26 quasi-identifiers, or
|
|
9491
|
+
* [`GdprSensitiveScope::Article9And10`] to also cover
|
|
9492
|
+
* Article 10 criminal-justice data.
|
|
9493
|
+
* @default article9
|
|
9494
|
+
*/
|
|
9495
|
+
scope: components["schemas"]["GdprSensitiveScope"];
|
|
9496
|
+
/**
|
|
9497
|
+
* @description Which operator to apply to matches. See
|
|
9498
|
+
* [`GdprArticle9Treatment`] for the tradeoff.
|
|
9499
|
+
*/
|
|
9500
|
+
treatment: components["schemas"]["GdprArticle9Treatment"];
|
|
9501
|
+
};
|
|
9224
9502
|
/**
|
|
9225
9503
|
* @description Which operator to apply to Article 9 special-category entities.
|
|
9226
9504
|
*
|
|
@@ -9235,6 +9513,31 @@ interface components {
|
|
|
9235
9513
|
* obligation to establish and document.
|
|
9236
9514
|
*/
|
|
9237
9515
|
GdprArticle9Treatment: "erase" | "pseudonymize";
|
|
9516
|
+
/**
|
|
9517
|
+
* @description Which sensitive-data labels the template's group covers.
|
|
9518
|
+
*
|
|
9519
|
+
* Three tiers, each strictly widening the previous one so a
|
|
9520
|
+
* caller upgrading through the tiers never loses coverage:
|
|
9521
|
+
*
|
|
9522
|
+
* - [`Article9`](Self::Article9) — the nine Article 9(1)
|
|
9523
|
+
* special categories only. The default.
|
|
9524
|
+
* - [`Article9WithReidHardening`](Self::Article9WithReidHardening) —
|
|
9525
|
+
* Article 9 plus `date_of_birth` and `postal_code`. The two
|
|
9526
|
+
* quasi-identifiers Recital 26 highlights as re-identification
|
|
9527
|
+
* vectors when combined with special-category data. Non-
|
|
9528
|
+
* binding guidance, but reflects supervisory-authority
|
|
9529
|
+
* expectations on pseudonymization robustness.
|
|
9530
|
+
* - [`Article9And10`](Self::Article9And10) — Article 9 + Recital
|
|
9531
|
+
* 26 hardening + Article 10's criminal-justice labels
|
|
9532
|
+
* (`criminal_record`, `criminal_charge`, `judicial_narrative`).
|
|
9533
|
+
* Article 10 governs "personal data relating to criminal
|
|
9534
|
+
* convictions and offences", processed only under authorized
|
|
9535
|
+
* official-authority control or specific Union/Member-State
|
|
9536
|
+
* law. Callers with criminal-justice adjacency (background-
|
|
9537
|
+
* check services, court-records handling, HR compliance) pick
|
|
9538
|
+
* this tier.
|
|
9539
|
+
*/
|
|
9540
|
+
GdprSensitiveScope: "article9" | "article9_with_reid_hardening" | "article9_and10";
|
|
9238
9541
|
/** @description Request to generate a shareable invite code for a workspace. */
|
|
9239
9542
|
GenerateInviteCode: {
|
|
9240
9543
|
/** @description When the invite code expires. */
|
|
@@ -9255,6 +9558,29 @@ interface components {
|
|
|
9255
9558
|
};
|
|
9256
9559
|
/** @description Operational status of a service component. */
|
|
9257
9560
|
HealthStatus: "healthy" | "degraded" | "unhealthy";
|
|
9561
|
+
/**
|
|
9562
|
+
* @description Which account-identifier labels §164.514(b)(2)(i)(J) covers.
|
|
9563
|
+
*
|
|
9564
|
+
* The regulation names "account numbers" without enumerating
|
|
9565
|
+
* them; HHS OCR's 2012 guidance doesn't narrow it either. In
|
|
9566
|
+
* practice, covered entities and de-ID vendors treat bank
|
|
9567
|
+
* accounts, IBANs, and payment cards as the core §(J) set —
|
|
9568
|
+
* [`Standard`](Self::Standard). Cryptocurrency wallet addresses
|
|
9569
|
+
* are the newer case: they identify a specific holder's account
|
|
9570
|
+
* by function, and the §(R) catch-all pulls in "any other unique
|
|
9571
|
+
* identifying number, characteristic, or code" tied to an
|
|
9572
|
+
* individual, which arguably captures them. Deployments where
|
|
9573
|
+
* crypto addresses can appear in patient-facing artifacts pick
|
|
9574
|
+
* [`Extended`](Self::Extended); deployments where they can't
|
|
9575
|
+
* stay on `Standard`.
|
|
9576
|
+
*
|
|
9577
|
+
* The compliant posture for anything account-shaped is
|
|
9578
|
+
* "remove"; the split is only about how broadly this template
|
|
9579
|
+
* pre-declares the account label scope. A caller who wants
|
|
9580
|
+
* broader coverage combines this template's policy with a
|
|
9581
|
+
* separate PII scope on the same request.
|
|
9582
|
+
*/
|
|
9583
|
+
HipaaAccountNumbers: "standard" | "extended";
|
|
9258
9584
|
/**
|
|
9259
9585
|
* @description Which HIPAA §164.514 de-identification method to apply.
|
|
9260
9586
|
*
|
|
@@ -9280,168 +9606,111 @@ interface components {
|
|
|
9280
9606
|
*/
|
|
9281
9607
|
HipaaDeidMethod: "safe_harbor" | "limited_data_set" | "expert_determination";
|
|
9282
9608
|
/**
|
|
9283
|
-
* @description
|
|
9284
|
-
*
|
|
9285
|
-
*
|
|
9286
|
-
* recognizer that emits unit-square boxes needs to scale them into pixel
|
|
9287
|
-
* coordinates. An optional filename aids diagnostics and encoding
|
|
9288
|
-
* inference.
|
|
9289
|
-
*
|
|
9290
|
-
* [`Image`]: super::Image
|
|
9609
|
+
* @description The HIPAA §164.514 template config — method axis fused with
|
|
9610
|
+
* account-identifier axis. Carried directly by
|
|
9611
|
+
* [`crate::PolicyTemplate::HipaaDeidentification`].
|
|
9291
9612
|
*/
|
|
9292
|
-
|
|
9293
|
-
/**
|
|
9294
|
-
|
|
9295
|
-
|
|
9296
|
-
|
|
9613
|
+
HipaaDeidentification: {
|
|
9614
|
+
/**
|
|
9615
|
+
* @description Which §(J) account-identifier labels to remove. Defaults
|
|
9616
|
+
* to [`HipaaAccountNumbers::Standard`] (bank account +
|
|
9617
|
+
* IBAN + payment card). Pick
|
|
9618
|
+
* [`HipaaAccountNumbers::Extended`] to add crypto wallet
|
|
9619
|
+
* addresses under the §(R) catch-all reading.
|
|
9620
|
+
* @default standard
|
|
9621
|
+
*/
|
|
9622
|
+
accounts: components["schemas"]["HipaaAccountNumbers"];
|
|
9623
|
+
/**
|
|
9624
|
+
* @description Which §164.514 method to apply. See [`HipaaDeidMethod`]
|
|
9625
|
+
* for the tradeoff.
|
|
9626
|
+
*/
|
|
9627
|
+
method: components["schemas"]["HipaaDeidMethod"];
|
|
9297
9628
|
};
|
|
9298
9629
|
/**
|
|
9299
|
-
* @description
|
|
9630
|
+
* @description One node in an entity's audit DAG: a thing that happened, with its
|
|
9631
|
+
* effect on confidence and its tamper-evident links.
|
|
9300
9632
|
*
|
|
9301
|
-
*
|
|
9302
|
-
*
|
|
9303
|
-
*
|
|
9304
|
-
*
|
|
9633
|
+
* Events are recorded on an entity's [`AuditLog`], forming the full audit
|
|
9634
|
+
* trail of its life: each recognizer that found it, the deduplication that
|
|
9635
|
+
* fused them, any score calibration, and the redaction that hid it. The
|
|
9636
|
+
* uniform spine (who, resulting score, when) is the same for every event; the
|
|
9637
|
+
* [`kind`] carries the event-specific detail *and* the explanation of why the
|
|
9638
|
+
* event happened.
|
|
9305
9639
|
*
|
|
9306
|
-
*
|
|
9640
|
+
* Each event links to its [`parents`] by their [`hash`]: a birth event (a
|
|
9641
|
+
* recognizer's first detection) has no parents, a normal step has one, and a
|
|
9642
|
+
* [fusion](crate::entity::audit::AuditLog::record_fusion) has several. Its own
|
|
9643
|
+
* [`hash`] folds the
|
|
9644
|
+
* payload together with the parents' hashes, so altering any event breaks
|
|
9645
|
+
* every event downstream of it: [`AuditLog::verify`] walks the DAG and
|
|
9646
|
+
* reports the first break.
|
|
9307
9647
|
*
|
|
9308
|
-
*
|
|
9309
|
-
*
|
|
9310
|
-
*
|
|
9311
|
-
* `elide`) combines their entities into one: the survivor's
|
|
9312
|
-
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
9313
|
-
* contributing recognition event, plus a deduplication event, is
|
|
9314
|
-
* retained in its provenance. The entity therefore carries its full
|
|
9315
|
-
* audit trail with it.
|
|
9648
|
+
* `entity.confidence` always equals the [`confidence`] of the most recent
|
|
9649
|
+
* event. The confidence *flowing in* is not stored: it is the parents'
|
|
9650
|
+
* [`confidence`], recovered from the DAG.
|
|
9316
9651
|
*
|
|
9317
|
-
* [`
|
|
9318
|
-
* [`
|
|
9319
|
-
* [`
|
|
9320
|
-
* [`
|
|
9321
|
-
* [`
|
|
9652
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
9653
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
9654
|
+
* [`AuditLog::verify`]: crate::entity::audit::AuditLog::verify
|
|
9655
|
+
* [`kind`]: AuditEvent::kind
|
|
9656
|
+
* [`parents`]: AuditEvent::parents
|
|
9657
|
+
* [`hash`]: AuditEvent::hash
|
|
9658
|
+
* [`confidence`]: AuditEvent::confidence
|
|
9322
9659
|
*/
|
|
9323
|
-
|
|
9324
|
-
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
9325
|
-
confidence: components["schemas"]["Confidence"];
|
|
9326
|
-
/**
|
|
9327
|
-
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
9328
|
-
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
9329
|
-
* same real-world thing.
|
|
9330
|
-
*/
|
|
9331
|
-
coref?: components["schemas"]["EntityCoRef"];
|
|
9332
|
-
/**
|
|
9333
|
-
* Format: uuid
|
|
9334
|
-
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
9335
|
-
* when the entity is assembled.
|
|
9336
|
-
*/
|
|
9337
|
-
id: string;
|
|
9338
|
-
/**
|
|
9339
|
-
* @description What kind of sensitive information this is (resolved via a
|
|
9340
|
-
* [`LabelCatalog`]).
|
|
9341
|
-
*/
|
|
9342
|
-
label: components["schemas"]["LabelRef"];
|
|
9660
|
+
ImageAuditEvent: {
|
|
9343
9661
|
/**
|
|
9344
|
-
* @description
|
|
9345
|
-
*
|
|
9662
|
+
* @description Confidence after this event: the entity's effective confidence once it
|
|
9663
|
+
* has happened.
|
|
9346
9664
|
*/
|
|
9347
|
-
|
|
9665
|
+
confidence: components["schemas"]["Confidence"];
|
|
9348
9666
|
/**
|
|
9349
|
-
* @description
|
|
9350
|
-
*
|
|
9667
|
+
* @description This event's hash, over its payload and its parents' hashes. Assigned by
|
|
9668
|
+
* [`AuditLog`] when the event is recorded; read it through
|
|
9669
|
+
* [`hash`](Self::hash). Recomputing it is how the DAG is verified.
|
|
9670
|
+
*
|
|
9671
|
+
* Not publicly settable: only [`AuditLog`] assigns it, so a caller cannot
|
|
9672
|
+
* forge a self-consistent event outside the recording path.
|
|
9673
|
+
*
|
|
9674
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
9351
9675
|
*/
|
|
9352
|
-
|
|
9676
|
+
hash: components["schemas"]["AuditHash"];
|
|
9677
|
+
/** @description Kind of event, with its event-specific detail and its rationale. */
|
|
9678
|
+
kind: components["schemas"]["ImageAuditKind"];
|
|
9353
9679
|
/**
|
|
9354
|
-
* @description
|
|
9355
|
-
*
|
|
9680
|
+
* @description The events this one follows, by their hash. Empty for a birth event, one
|
|
9681
|
+
* entry for a normal step, several for a fusion. Assigned by [`AuditLog`]
|
|
9682
|
+
* when the event is recorded; read it through [`parents`](Self::parents).
|
|
9683
|
+
*
|
|
9684
|
+
* Not publicly settable: the links are the tamper-evident structure, so
|
|
9685
|
+
* only [`AuditLog::record`] / [`AuditLog::record_fusion`] assign them.
|
|
9686
|
+
*
|
|
9687
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
9688
|
+
* [`AuditLog::record`]: crate::entity::audit::AuditLog::record
|
|
9689
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
9356
9690
|
*/
|
|
9357
|
-
|
|
9691
|
+
parents: components["schemas"]["AuditHash"][];
|
|
9358
9692
|
/**
|
|
9359
|
-
* @description
|
|
9360
|
-
*
|
|
9361
|
-
* the stable key back into that enrichment artifact, where the rich
|
|
9362
|
-
* context lives (which OCR block, which speaker) that the geometric
|
|
9363
|
-
* [`location`] cannot hold. `None` for entities not found via text
|
|
9364
|
-
* recognition (e.g. a VLM box). Provenance, not a coordinate: redaction
|
|
9365
|
-
* uses [`location`]; an audit uses this with the artifact.
|
|
9366
|
-
*
|
|
9367
|
-
* [`location`]: Entity::location
|
|
9693
|
+
* @description Who produced this event: a recognizer name, a deduplication strategy,
|
|
9694
|
+
* an operator, or whatever acted.
|
|
9368
9695
|
*/
|
|
9369
|
-
|
|
9696
|
+
source: string;
|
|
9697
|
+
/** @description When the event happened (UTC). */
|
|
9698
|
+
timestamp: string;
|
|
9370
9699
|
};
|
|
9371
9700
|
/**
|
|
9372
|
-
* @description
|
|
9701
|
+
* @description Kind of an [`AuditEvent`], carrying its event-specific detail and the
|
|
9702
|
+
* rationale for why it happened.
|
|
9373
9703
|
*
|
|
9374
|
-
*
|
|
9375
|
-
*
|
|
9376
|
-
*
|
|
9377
|
-
*
|
|
9704
|
+
* `#[non_exhaustive]`: new event kinds (verification, annotation, …)
|
|
9705
|
+
* can be added compatibly. The recognition kinds ([`Pattern`],
|
|
9706
|
+
* [`Model`]) carry the matched [`Location`]; the rest carry their own
|
|
9707
|
+
* data.
|
|
9708
|
+
*
|
|
9709
|
+
* [`Pattern`]: AuditKind::Pattern
|
|
9710
|
+
* [`Model`]: AuditKind::Model
|
|
9711
|
+
* [`Location`]: Modality::Location
|
|
9378
9712
|
*/
|
|
9379
|
-
|
|
9380
|
-
/** @description The elide entity, as recognition produced it. */
|
|
9381
|
-
entity: components["schemas"]["ImageEntity"];
|
|
9382
|
-
/**
|
|
9383
|
-
* @description Reviewer-supplied redaction override.
|
|
9384
|
-
*
|
|
9385
|
-
* `None` means "use the matching policy rule's decision";
|
|
9386
|
-
* `Some(...)` overrides that rule for this specific entity
|
|
9387
|
-
* at apply time. Reviewer overrides take precedence over
|
|
9388
|
-
* every policy rule and inherit the authority of the
|
|
9389
|
-
* [`Review::policy_id`] they name — the audit event's
|
|
9390
|
-
* attribution stamps that policy so the trail names the
|
|
9391
|
-
* authority under which the override fired.
|
|
9392
|
-
*/
|
|
9393
|
-
review?: components["schemas"]["Review"];
|
|
9394
|
-
};
|
|
9395
|
-
/**
|
|
9396
|
-
* @description One thing that happened to an entity, with its effect on confidence.
|
|
9397
|
-
*
|
|
9398
|
-
* Events are recorded in order on an entity's [`Provenance`], forming
|
|
9399
|
-
* the full audit trail of its life: each recognizer that found it, the
|
|
9400
|
-
* deduplication that fused them, any score calibration, and the
|
|
9401
|
-
* redaction that hid it. The uniform spine (who, before/after score,
|
|
9402
|
-
* when, why) is the same for every event; the [`kind`] carries the
|
|
9403
|
-
* event-specific detail.
|
|
9404
|
-
*
|
|
9405
|
-
* `entity.confidence` always equals the [`after`] of the most recent
|
|
9406
|
-
* event.
|
|
9407
|
-
*
|
|
9408
|
-
* [`Provenance`]: crate::entity::provenance::Provenance
|
|
9409
|
-
* [`kind`]: Event::kind
|
|
9410
|
-
* [`after`]: Event::after
|
|
9411
|
-
*/
|
|
9412
|
-
ImageEvent: {
|
|
9413
|
-
/** @description Confidence after this event. */
|
|
9414
|
-
after: components["schemas"]["Confidence"];
|
|
9415
|
-
/** @description When the event happened (UTC). */
|
|
9416
|
-
at: string;
|
|
9417
|
-
/**
|
|
9418
|
-
* @description Confidence before this event, if there was a prior value. `None` on
|
|
9419
|
-
* the first (birth) event.
|
|
9420
|
-
*/
|
|
9421
|
-
before?: components["schemas"]["Confidence"];
|
|
9422
|
-
/** @description Kind of event, with its event-specific detail. */
|
|
9423
|
-
kind: components["schemas"]["ImageEventKind"];
|
|
9424
|
-
/** @description Free-text explanation of what the event did and why. */
|
|
9425
|
-
reason: string;
|
|
9426
|
-
/**
|
|
9427
|
-
* @description Who produced this event: a recognizer name, a deduplication strategy,
|
|
9428
|
-
* an operator, or whatever acted.
|
|
9429
|
-
*/
|
|
9430
|
-
source: string;
|
|
9431
|
-
};
|
|
9432
|
-
/**
|
|
9433
|
-
* @description Kind of an [`Event`], carrying its event-specific detail.
|
|
9434
|
-
*
|
|
9435
|
-
* `#[non_exhaustive]`: new event kinds (verification, annotation, …)
|
|
9436
|
-
* can be added compatibly. The recognition kinds ([`Pattern`],
|
|
9437
|
-
* [`Model`]) carry the matched [`Location`]; the rest carry their own
|
|
9438
|
-
* data.
|
|
9439
|
-
*
|
|
9440
|
-
* [`Pattern`]: EventKind::Pattern
|
|
9441
|
-
* [`Model`]: EventKind::Model
|
|
9442
|
-
* [`Location`]: Modality::Location
|
|
9443
|
-
*/
|
|
9444
|
-
ImageEventKind: {
|
|
9713
|
+
ImageAuditKind: {
|
|
9445
9714
|
/** @constant */
|
|
9446
9715
|
kind: "pattern";
|
|
9447
9716
|
/** @description Where the recognizer matched. */
|
|
@@ -9505,7 +9774,7 @@ interface components {
|
|
|
9505
9774
|
* it is the keyword resolved through the modality's [`locate`] (a
|
|
9506
9775
|
* pixel box for image, a time span for audio, the byte range for
|
|
9507
9776
|
* text/tabular). `None` when the keyword's stream range could not be
|
|
9508
|
-
* placed
|
|
9777
|
+
* placed, symmetric with a match the recognizer itself drops.
|
|
9509
9778
|
*
|
|
9510
9779
|
* [`locate`]: crate::modality::TextRecognizable::locate
|
|
9511
9780
|
*/
|
|
@@ -9523,12 +9792,174 @@ interface components {
|
|
|
9523
9792
|
/** @description How much the output leaks about the original. */
|
|
9524
9793
|
leak_profile: components["schemas"]["LeakProfile"];
|
|
9525
9794
|
/**
|
|
9526
|
-
* @description Which selection rule chose this operator
|
|
9795
|
+
* @description Which selection rule chose this operator: the automatic "why"
|
|
9527
9796
|
* (matched a label, a tag, a predicate, or the fallback).
|
|
9528
9797
|
*/
|
|
9529
9798
|
matched_by: components["schemas"]["RuleMatch"];
|
|
9530
9799
|
/** @description Which operator (name + version) ran. */
|
|
9531
9800
|
operator: components["schemas"]["OperatorId"];
|
|
9801
|
+
/**
|
|
9802
|
+
* @description BLAKE3 digest of the original text the operator hid, when the
|
|
9803
|
+
* redaction layer recorded it. Proves *what* was redacted without
|
|
9804
|
+
* storing the plaintext; `None` when the operator did not capture it.
|
|
9805
|
+
*/
|
|
9806
|
+
span_hash?: components["schemas"]["AuditHash"];
|
|
9807
|
+
/**
|
|
9808
|
+
* Format: uint32
|
|
9809
|
+
* @description Byte length of the original text the operator hid, paired with
|
|
9810
|
+
* [`span_hash`](Self::Redaction::span_hash). `None` when not captured.
|
|
9811
|
+
*/
|
|
9812
|
+
span_length?: number;
|
|
9813
|
+
};
|
|
9814
|
+
/**
|
|
9815
|
+
* @description Full audit trail of an [`Entity`]: every [`AuditEvent`] in its life, as a
|
|
9816
|
+
* tamper-evident DAG.
|
|
9817
|
+
*
|
|
9818
|
+
* Where Presidio keeps a shallow, optional, per-stage explanation that is
|
|
9819
|
+
* stripped by default, an `AuditLog` is always present and records the
|
|
9820
|
+
* entity's *entire* life: each recognizer that found it, the deduplication
|
|
9821
|
+
* that fused them, any confidence calibration, and the redaction that hid it.
|
|
9822
|
+
* Nothing is collapsed: every recognizer keeps its own recognition event with
|
|
9823
|
+
* its location and score.
|
|
9824
|
+
*
|
|
9825
|
+
* The events form a **directed acyclic graph**, not a flat list. A recognizer
|
|
9826
|
+
* records a birth event (no parents); each later step links to the event it
|
|
9827
|
+
* follows; and a [fusion](Self::record_fusion) links to *several* parents at
|
|
9828
|
+
* once: the heads of the trails it combines. This is the true shape of a
|
|
9829
|
+
* deduplicated entity: two recognizers are siblings, then a fusion joins them.
|
|
9830
|
+
* The events are stored in the order they were recorded, which is a
|
|
9831
|
+
* topological order of the DAG (a parent is always recorded before its
|
|
9832
|
+
* children).
|
|
9833
|
+
*
|
|
9834
|
+
* Two chains ride the DAG's edges:
|
|
9835
|
+
*
|
|
9836
|
+
* - a **confidence chain**, where each event's [`confidence`] is the entity's
|
|
9837
|
+
* effective score after it; the score flowing *in* is its parents'
|
|
9838
|
+
* confidence, so [`final_confidence`] and the full history are recoverable;
|
|
9839
|
+
* - a **hash chain**, where each event's [`hash`] folds its payload together
|
|
9840
|
+
* with its parents' hashes, so any edit, reorder, insertion, or deletion of
|
|
9841
|
+
* an earlier event breaks every event downstream. [`verify`] walks the DAG
|
|
9842
|
+
* and reports the first break.
|
|
9843
|
+
*
|
|
9844
|
+
* [`Entity`]: crate::entity::Entity
|
|
9845
|
+
* [`confidence`]: AuditEvent::confidence
|
|
9846
|
+
* [`hash`]: AuditEvent::hash
|
|
9847
|
+
* [`final_confidence`]: Self::final_confidence
|
|
9848
|
+
* [`verify`]: Self::verify
|
|
9849
|
+
*/
|
|
9850
|
+
ImageAuditLog: components["schemas"]["ImageAuditEvent"][];
|
|
9851
|
+
/**
|
|
9852
|
+
* @description Per-call payload a recognizer inspects for the [`Image`] modality.
|
|
9853
|
+
*
|
|
9854
|
+
* Carries the encoded bytes plus the pixel [`Dimensions`], which a
|
|
9855
|
+
* recognizer that emits unit-square boxes needs to scale them into pixel
|
|
9856
|
+
* coordinates. An optional filename aids diagnostics and encoding
|
|
9857
|
+
* inference.
|
|
9858
|
+
*
|
|
9859
|
+
* [`Image`]: super::Image
|
|
9860
|
+
*/
|
|
9861
|
+
ImageData: {
|
|
9862
|
+
/** @description Pixel dimensions of the encoded image. */
|
|
9863
|
+
dimensions: components["schemas"]["Dimensions"];
|
|
9864
|
+
/** @description Original filename, when known. */
|
|
9865
|
+
filename?: string;
|
|
9866
|
+
};
|
|
9867
|
+
/**
|
|
9868
|
+
* @description Detected piece of sensitive information within some medium.
|
|
9869
|
+
*
|
|
9870
|
+
* Generic over the [`Modality`] `M`, which is what makes the model
|
|
9871
|
+
* multimodal: a text pipeline yields `Entity<Text>`, an audio pipeline
|
|
9872
|
+
* `Entity<Audio>`, and so on. The entity's location is the modality's
|
|
9873
|
+
* [`Location`] type, `M::Location`.
|
|
9874
|
+
*
|
|
9875
|
+
* # Birth and fusion
|
|
9876
|
+
*
|
|
9877
|
+
* A recognizer emits an entity directly, carrying a single recognition
|
|
9878
|
+
* [`AuditEvent`] (its own finding) in the entity's [`audit`] trail. When
|
|
9879
|
+
* several recognizers find the same thing, a fusion step (in
|
|
9880
|
+
* `elide`) combines their entities into one: the survivor's
|
|
9881
|
+
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
9882
|
+
* contributing recognition event, plus a deduplication event, is
|
|
9883
|
+
* retained in its audit trail. The entity therefore carries its full
|
|
9884
|
+
* audit trail with it.
|
|
9885
|
+
*
|
|
9886
|
+
* [`Location`]: Modality::Location
|
|
9887
|
+
* [`AuditEvent`]: crate::entity::audit::AuditEvent
|
|
9888
|
+
* [`audit`]: Entity::audit
|
|
9889
|
+
* [`location`]: Entity::location
|
|
9890
|
+
* [`confidence`]: Entity::confidence
|
|
9891
|
+
*/
|
|
9892
|
+
ImageEntity: {
|
|
9893
|
+
/**
|
|
9894
|
+
* @description Tamper-evident audit trail: every contributing detection, the fusion
|
|
9895
|
+
* event if any, and the redaction that hid it, as a hash-linked DAG.
|
|
9896
|
+
*/
|
|
9897
|
+
audit: components["schemas"]["ImageAuditLog"];
|
|
9898
|
+
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
9899
|
+
confidence: components["schemas"]["Confidence"];
|
|
9900
|
+
/**
|
|
9901
|
+
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
9902
|
+
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
9903
|
+
* same real-world thing.
|
|
9904
|
+
*/
|
|
9905
|
+
coref?: components["schemas"]["EntityCoRef"];
|
|
9906
|
+
/**
|
|
9907
|
+
* Format: uuid
|
|
9908
|
+
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
9909
|
+
* when the entity is assembled.
|
|
9910
|
+
*/
|
|
9911
|
+
id: string;
|
|
9912
|
+
/**
|
|
9913
|
+
* @description What kind of sensitive information this is (resolved via a
|
|
9914
|
+
* [`LabelCatalog`]).
|
|
9915
|
+
*/
|
|
9916
|
+
label: components["schemas"]["LabelRef"];
|
|
9917
|
+
/**
|
|
9918
|
+
* @description The language of this entity's surrounding text, when a recognizer
|
|
9919
|
+
* resolved one. `None` when unknown or language-agnostic.
|
|
9920
|
+
*/
|
|
9921
|
+
language?: string;
|
|
9922
|
+
/**
|
|
9923
|
+
* @description Location of the entity within the medium (fused, if it came from more
|
|
9924
|
+
* than one detection).
|
|
9925
|
+
*/
|
|
9926
|
+
location: components["schemas"]["ImageLocation"];
|
|
9927
|
+
/**
|
|
9928
|
+
* @description Byte range of the match in the *recognized text* it was found in (the
|
|
9929
|
+
* OCR layout text, the audio transcript, or the text payload itself) —
|
|
9930
|
+
* the stable key back into that enrichment artifact, where the rich
|
|
9931
|
+
* context lives (which OCR block, which speaker) that the geometric
|
|
9932
|
+
* [`location`] cannot hold. `None` for entities not found via text
|
|
9933
|
+
* recognition (e.g. a VLM box). An audit key, not a coordinate: redaction
|
|
9934
|
+
* uses [`location`]; an audit uses this with the artifact.
|
|
9935
|
+
*
|
|
9936
|
+
* [`location`]: Entity::location
|
|
9937
|
+
*/
|
|
9938
|
+
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
9939
|
+
};
|
|
9940
|
+
/**
|
|
9941
|
+
* @description One recognized entity plus the optional reviewer override.
|
|
9942
|
+
*
|
|
9943
|
+
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
9944
|
+
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
9945
|
+
* derivation needs them schema-able. All four modalities elide
|
|
9946
|
+
* ships satisfy these under the `serde` + `schema` features.
|
|
9947
|
+
*/
|
|
9948
|
+
ImageEntityRecord: {
|
|
9949
|
+
/** @description The elide entity, as recognition produced it. */
|
|
9950
|
+
entity: components["schemas"]["ImageEntity"];
|
|
9951
|
+
/**
|
|
9952
|
+
* @description Reviewer-supplied redaction override.
|
|
9953
|
+
*
|
|
9954
|
+
* `None` means "use the matching policy rule's decision";
|
|
9955
|
+
* `Some(...)` overrides that rule for this specific entity
|
|
9956
|
+
* at apply time. Reviewer overrides take precedence over
|
|
9957
|
+
* every policy rule and inherit the authority of the
|
|
9958
|
+
* [`Review::policy_id`] they name — the audit event's
|
|
9959
|
+
* attribution stamps that policy so the trail names the
|
|
9960
|
+
* authority under which the override fired.
|
|
9961
|
+
*/
|
|
9962
|
+
review?: components["schemas"]["Review"];
|
|
9532
9963
|
};
|
|
9533
9964
|
/**
|
|
9534
9965
|
* @description Located, typed piece of context a recognizer may treat as in-context
|
|
@@ -9575,31 +10006,6 @@ interface components {
|
|
|
9575
10006
|
*/
|
|
9576
10007
|
polygon?: components["schemas"]["Polygon"];
|
|
9577
10008
|
};
|
|
9578
|
-
/**
|
|
9579
|
-
* @description Full audit trail of an [`Entity`]: every [`Event`] in its life, in
|
|
9580
|
-
* order.
|
|
9581
|
-
*
|
|
9582
|
-
* This is the model's answer to "full provenance": where Presidio keeps
|
|
9583
|
-
* a shallow, optional, per-stage explanation that is stripped by
|
|
9584
|
-
* default, a `Provenance` is always present and records the entity's
|
|
9585
|
-
* *entire* life as an ordered list of events: each recognizer that
|
|
9586
|
-
* found it, the deduplication that fused them, any confidence
|
|
9587
|
-
* calibration, and the redaction that hid it. Nothing is collapsed:
|
|
9588
|
-
* every recognizer keeps its own recognition event with its location
|
|
9589
|
-
* and score.
|
|
9590
|
-
*
|
|
9591
|
-
* The events form a confidence chain (each event's [`after`] is the
|
|
9592
|
-
* next's [`before`]) so the final confidence and its full history are
|
|
9593
|
-
* always recoverable.
|
|
9594
|
-
*
|
|
9595
|
-
* [`Entity`]: crate::entity::Entity
|
|
9596
|
-
* [`after`]: Event::after
|
|
9597
|
-
* [`before`]: Event::before
|
|
9598
|
-
*/
|
|
9599
|
-
ImageProvenance: {
|
|
9600
|
-
/** @description Events, in the order they happened. */
|
|
9601
|
-
events: components["schemas"]["ImageEvent"][];
|
|
9602
|
-
};
|
|
9603
10009
|
/** @description Operator spec a `redact` image rule carries. */
|
|
9604
10010
|
ImageRedaction: {
|
|
9605
10011
|
/** @constant */
|
|
@@ -9679,6 +10085,16 @@ interface components {
|
|
|
9679
10085
|
/** @description Handle of the workspace the invitation is for. */
|
|
9680
10086
|
workspaceSlug: components["schemas"]["Handle"];
|
|
9681
10087
|
};
|
|
10088
|
+
/** @description Params of an invite activity (`invite.*`). */
|
|
10089
|
+
InviteActivityParams: {
|
|
10090
|
+
/** @description Email the invite was addressed to. */
|
|
10091
|
+
email: string;
|
|
10092
|
+
/**
|
|
10093
|
+
* Format: uuid
|
|
10094
|
+
* @description Id of the invite.
|
|
10095
|
+
*/
|
|
10096
|
+
inviteId: string;
|
|
10097
|
+
};
|
|
9682
10098
|
/** @description Response containing a generated shareable invite code. */
|
|
9683
10099
|
InviteCode: {
|
|
9684
10100
|
/**
|
|
@@ -9774,7 +10190,7 @@ interface components {
|
|
|
9774
10190
|
InviteStatus: "pending" | "accepted" | "declined" | "canceled" | "expired" | "revoked";
|
|
9775
10191
|
/**
|
|
9776
10192
|
* @description Kind of sensitive information: a stable [`id`], per-language
|
|
9777
|
-
* [`LabelLocale`]s, and zero or more tags.
|
|
10193
|
+
* [`LabelLocale`]s, an optional [`category`], and zero or more tags.
|
|
9778
10194
|
*
|
|
9779
10195
|
* # Identity
|
|
9780
10196
|
*
|
|
@@ -9792,18 +10208,25 @@ interface components {
|
|
|
9792
10208
|
* text — NER and LLM read the analysis language's name and description to
|
|
9793
10209
|
* prompt the model, keyed by the stable id.
|
|
9794
10210
|
*
|
|
9795
|
-
* #
|
|
10211
|
+
* # Category and tags
|
|
10212
|
+
*
|
|
10213
|
+
* [`category`] is the single coarse group a label belongs to (`financial`,
|
|
10214
|
+
* `health`, `identity`, …), for organizing detected entities by kind. Built-in
|
|
10215
|
+
* labels ship with one; a custom label has none unless set.
|
|
9796
10216
|
*
|
|
9797
|
-
* [`tags`] is a free-form list of
|
|
9798
|
-
*
|
|
9799
|
-
* `
|
|
9800
|
-
*
|
|
10217
|
+
* [`tags`] is a free-form list of *cross-cutting* markers a policy selector
|
|
10218
|
+
* matches against — sensitivity flags a label may carry several of (`pii`,
|
|
10219
|
+
* `phi`, `pci`, `sad`, `secret`). Distinct from the category: a label has at
|
|
10220
|
+
* most one category but any number of tags. Custom labels can ship with zero
|
|
10221
|
+
* of either.
|
|
9801
10222
|
*
|
|
9802
10223
|
* [`id`]: Label::id
|
|
9803
10224
|
* [`localization`]: Label::localization
|
|
10225
|
+
* [`category`]: Label::category
|
|
9804
10226
|
* [`tags`]: Label::tags
|
|
9805
10227
|
*/
|
|
9806
10228
|
Label: {
|
|
10229
|
+
category?: components["schemas"]["Category"];
|
|
9807
10230
|
id: string;
|
|
9808
10231
|
localizations: components["schemas"]["LocalizedText"];
|
|
9809
10232
|
tags: string[];
|
|
@@ -10158,14 +10581,19 @@ interface components {
|
|
|
10158
10581
|
/** @description Handle of the member's account. */
|
|
10159
10582
|
username: components["schemas"]["Handle"];
|
|
10160
10583
|
};
|
|
10161
|
-
/** @description Params of a `member
|
|
10584
|
+
/** @description Params of a member activity (`member.*`). */
|
|
10585
|
+
MemberActivityParams: {
|
|
10586
|
+
/** @description Username of the member acted on. */
|
|
10587
|
+
memberUsername: components["schemas"]["Handle"];
|
|
10588
|
+
};
|
|
10589
|
+
/** @description Params of a `member.invited` notification. */
|
|
10162
10590
|
MemberInvitedParams: {
|
|
10163
10591
|
/** @description Username of the account that sent the invite, if known. */
|
|
10164
10592
|
invitedBy?: string;
|
|
10165
10593
|
/** @description Slug of the workspace the account was invited to. */
|
|
10166
10594
|
workspaceSlug: string;
|
|
10167
10595
|
};
|
|
10168
|
-
/** @description Params of a `member
|
|
10596
|
+
/** @description Params of a `member.joined` notification. */
|
|
10169
10597
|
MemberJoinedParams: {
|
|
10170
10598
|
/** @description Username of the member that joined. */
|
|
10171
10599
|
memberUsername: string;
|
|
@@ -10235,8 +10663,8 @@ interface components {
|
|
|
10235
10663
|
/**
|
|
10236
10664
|
* @description Response type for an account notification.
|
|
10237
10665
|
*
|
|
10238
|
-
* The typed
|
|
10239
|
-
*
|
|
10666
|
+
* The typed payload is nested under `payload`, so a notification is
|
|
10667
|
+
* `{ id, payload: { notifyType, <params...> }, readAt, ... }`.
|
|
10240
10668
|
*/
|
|
10241
10669
|
Notification: {
|
|
10242
10670
|
/**
|
|
@@ -10254,13 +10682,14 @@ interface components {
|
|
|
10254
10682
|
* @description Unique notification identifier.
|
|
10255
10683
|
*/
|
|
10256
10684
|
id: string;
|
|
10257
|
-
/**
|
|
10258
|
-
|
|
10259
|
-
|
|
10260
|
-
|
|
10685
|
+
/**
|
|
10686
|
+
* @description The notification type and its typed params, absent when the stored params
|
|
10687
|
+
* do not decode into their `notifyType`.
|
|
10688
|
+
*/
|
|
10689
|
+
payload?: components["schemas"]["NotificationPayload"];
|
|
10261
10690
|
/**
|
|
10262
10691
|
* Format: date-time
|
|
10263
|
-
* @description When the notification was read.
|
|
10692
|
+
* @description When the notification was read; absent means unread.
|
|
10264
10693
|
*/
|
|
10265
10694
|
readAt?: string;
|
|
10266
10695
|
};
|
|
@@ -10272,7 +10701,7 @@ interface components {
|
|
|
10272
10701
|
* The values mirror the [`WebhookEvent`](super::WebhookEvent) naming for the
|
|
10273
10702
|
* events the two channels share.
|
|
10274
10703
|
*/
|
|
10275
|
-
NotificationEvent: "member
|
|
10704
|
+
NotificationEvent: "member.invited" | "member.joined" | "connection.sync.completed" | "connection.sync.failed" | "pipeline.run.analyzed" | "pipeline.run.completed" | "pipeline.run.failed" | "system.announcement" | "system.report";
|
|
10276
10705
|
/**
|
|
10277
10706
|
* @description Generic paginated response wrapper.
|
|
10278
10707
|
*
|
|
@@ -10307,38 +10736,37 @@ interface components {
|
|
|
10307
10736
|
/**
|
|
10308
10737
|
* @description The typed payload of a notification, tagged by `notifyType`.
|
|
10309
10738
|
*
|
|
10310
|
-
* Each variant is one notification type carrying its own params struct.
|
|
10311
|
-
*
|
|
10312
|
-
*
|
|
10313
|
-
* so the same key drives the member's per-event preferences.
|
|
10739
|
+
* Each variant is one notification type carrying its own params struct. The
|
|
10740
|
+
* `notifyType` values match [`NotificationEvent`], so the same key drives the
|
|
10741
|
+
* member's per-event preferences.
|
|
10314
10742
|
*/
|
|
10315
10743
|
NotificationPayload: ({
|
|
10316
10744
|
/** @constant */
|
|
10317
|
-
notifyType: "member
|
|
10745
|
+
notifyType: "member.invited";
|
|
10318
10746
|
} & components["schemas"]["MemberInvitedParams"]) | ({
|
|
10319
10747
|
/** @constant */
|
|
10320
|
-
notifyType: "member
|
|
10748
|
+
notifyType: "member.joined";
|
|
10321
10749
|
} & components["schemas"]["MemberJoinedParams"]) | ({
|
|
10322
10750
|
/** @constant */
|
|
10323
|
-
notifyType: "connection
|
|
10751
|
+
notifyType: "connection.sync.completed";
|
|
10324
10752
|
} & components["schemas"]["ConnectionSyncCompletedParams"]) | ({
|
|
10325
10753
|
/** @constant */
|
|
10326
|
-
notifyType: "connection
|
|
10754
|
+
notifyType: "connection.sync.failed";
|
|
10327
10755
|
} & components["schemas"]["ConnectionSyncFailedParams"]) | ({
|
|
10328
10756
|
/** @constant */
|
|
10329
|
-
notifyType: "pipeline
|
|
10757
|
+
notifyType: "pipeline.run.analyzed";
|
|
10330
10758
|
} & components["schemas"]["PipelineRunAnalyzedParams"]) | ({
|
|
10331
10759
|
/** @constant */
|
|
10332
|
-
notifyType: "pipeline
|
|
10760
|
+
notifyType: "pipeline.run.completed";
|
|
10333
10761
|
} & components["schemas"]["PipelineRunCompletedParams"]) | ({
|
|
10334
10762
|
/** @constant */
|
|
10335
|
-
notifyType: "pipeline
|
|
10763
|
+
notifyType: "pipeline.run.failed";
|
|
10336
10764
|
} & components["schemas"]["PipelineRunFailedParams"]) | ({
|
|
10337
10765
|
/** @constant */
|
|
10338
|
-
notifyType: "system
|
|
10766
|
+
notifyType: "system.announcement";
|
|
10339
10767
|
} & components["schemas"]["SystemAnnouncementParams"]) | ({
|
|
10340
10768
|
/** @constant */
|
|
10341
|
-
notifyType: "system
|
|
10769
|
+
notifyType: "system.report";
|
|
10342
10770
|
} & components["schemas"]["SystemReportParams"]);
|
|
10343
10771
|
/** @description Response for notification settings within a workspace. */
|
|
10344
10772
|
NotificationSettings: {
|
|
@@ -10497,6 +10925,11 @@ interface components {
|
|
|
10497
10925
|
/** @description Handle of the workspace this pipeline belongs to. */
|
|
10498
10926
|
workspaceSlug: components["schemas"]["Handle"];
|
|
10499
10927
|
};
|
|
10928
|
+
/** @description Params of a pipeline activity (`pipeline.*`, non-run). */
|
|
10929
|
+
PipelineActivityParams: {
|
|
10930
|
+
/** @description Slug of the pipeline. */
|
|
10931
|
+
pipelineSlug: components["schemas"]["Handle"];
|
|
10932
|
+
};
|
|
10500
10933
|
/**
|
|
10501
10934
|
* @description A pipeline's detection + governance intent.
|
|
10502
10935
|
*
|
|
@@ -10570,7 +11003,7 @@ interface components {
|
|
|
10570
11003
|
*/
|
|
10571
11004
|
inputFileName?: string;
|
|
10572
11005
|
/** @description Non-encrypted metadata for filtering/display. */
|
|
10573
|
-
metadata:
|
|
11006
|
+
metadata: components["schemas"]["RunMetadata"];
|
|
10574
11007
|
/**
|
|
10575
11008
|
* Format: uuid
|
|
10576
11009
|
* @description Redacted document produced by the run, once it completes.
|
|
@@ -10599,7 +11032,17 @@ interface components {
|
|
|
10599
11032
|
/** @description Handle of the workspace this run belongs to. */
|
|
10600
11033
|
workspaceSlug: components["schemas"]["Handle"];
|
|
10601
11034
|
};
|
|
10602
|
-
/** @description Params of a `pipeline
|
|
11035
|
+
/** @description Params of a pipeline-run activity (`pipeline.run.*`). */
|
|
11036
|
+
PipelineRunActivityParams: {
|
|
11037
|
+
/** @description Slug of the owning pipeline. */
|
|
11038
|
+
pipelineSlug: components["schemas"]["Handle"];
|
|
11039
|
+
/**
|
|
11040
|
+
* Format: uuid
|
|
11041
|
+
* @description Id of the run.
|
|
11042
|
+
*/
|
|
11043
|
+
runId: string;
|
|
11044
|
+
};
|
|
11045
|
+
/** @description Params of a `pipeline.run.analyzed` notification. */
|
|
10603
11046
|
PipelineRunAnalyzedParams: {
|
|
10604
11047
|
/** @description Display name of the analyzed file, if known. */
|
|
10605
11048
|
inputFileName?: string;
|
|
@@ -10611,7 +11054,7 @@ interface components {
|
|
|
10611
11054
|
*/
|
|
10612
11055
|
runId: string;
|
|
10613
11056
|
};
|
|
10614
|
-
/** @description Params of a `pipeline
|
|
11057
|
+
/** @description Params of a `pipeline.run.completed` notification. */
|
|
10615
11058
|
PipelineRunCompletedParams: {
|
|
10616
11059
|
/** @description Display name of the analyzed file, if known. */
|
|
10617
11060
|
inputFileName?: string;
|
|
@@ -10623,7 +11066,7 @@ interface components {
|
|
|
10623
11066
|
*/
|
|
10624
11067
|
runId: string;
|
|
10625
11068
|
};
|
|
10626
|
-
/** @description Params of a `pipeline
|
|
11069
|
+
/** @description Params of a `pipeline.run.failed` notification. */
|
|
10627
11070
|
PipelineRunFailedParams: {
|
|
10628
11071
|
/** @description Failure reason, if available. */
|
|
10629
11072
|
error?: string;
|
|
@@ -10796,6 +11239,14 @@ interface components {
|
|
|
10796
11239
|
/** @description Handle of the workspace this policy belongs to. */
|
|
10797
11240
|
workspaceSlug: components["schemas"]["Handle"];
|
|
10798
11241
|
};
|
|
11242
|
+
/** @description Params of a policy activity (`policy.*`). */
|
|
11243
|
+
PolicyActivityParams: {
|
|
11244
|
+
/**
|
|
11245
|
+
* Format: uuid
|
|
11246
|
+
* @description Id of the policy.
|
|
11247
|
+
*/
|
|
11248
|
+
policyId: string;
|
|
11249
|
+
};
|
|
10799
11250
|
/**
|
|
10800
11251
|
* @description A named governance policy.
|
|
10801
11252
|
*
|
|
@@ -10831,7 +11282,7 @@ interface components {
|
|
|
10831
11282
|
* [`Attribution::name`] so reviewers can find this policy
|
|
10832
11283
|
* from any redaction it drove.
|
|
10833
11284
|
*
|
|
10834
|
-
* [`Attribution::name`]: elide_core::entity::
|
|
11285
|
+
* [`Attribution::name`]: elide_core::entity::audit::Attribution::name
|
|
10835
11286
|
*/
|
|
10836
11287
|
id: string;
|
|
10837
11288
|
/**
|
|
@@ -10879,7 +11330,7 @@ interface components {
|
|
|
10879
11330
|
* reviewers can trace which rule fired. Every attachment a
|
|
10880
11331
|
* [`RuleDispatch::Table`] expands into shares this UUID.
|
|
10881
11332
|
*
|
|
10882
|
-
* [`Attribution::description`]: elide_core::entity::
|
|
11333
|
+
* [`Attribution::description`]: elide_core::entity::audit::Attribution::description
|
|
10883
11334
|
*/
|
|
10884
11335
|
id: string;
|
|
10885
11336
|
/** @description Human-readable name. Display-only. */
|
|
@@ -10971,23 +11422,13 @@ interface components {
|
|
|
10971
11422
|
* operator options,
|
|
10972
11423
|
* `{"kind": "pci_dss_pan", "render": "hmac_sha256"}`.
|
|
10973
11424
|
*/
|
|
10974
|
-
PolicyTemplate: {
|
|
11425
|
+
PolicyTemplate: ({
|
|
10975
11426
|
/** @constant */
|
|
10976
11427
|
kind: "hipaa_deidentification";
|
|
10977
|
-
|
|
10978
|
-
* @description Which §164.514 method to apply. See [`HipaaDeidMethod`]
|
|
10979
|
-
* for the tradeoff.
|
|
10980
|
-
*/
|
|
10981
|
-
method: components["schemas"]["HipaaDeidMethod"];
|
|
10982
|
-
} | {
|
|
11428
|
+
} & components["schemas"]["HipaaDeidentification"]) | ({
|
|
10983
11429
|
/** @constant */
|
|
10984
11430
|
kind: "gdpr_article9";
|
|
10985
|
-
|
|
10986
|
-
* @description Which operator to apply to Article 9 matches. See
|
|
10987
|
-
* [`GdprArticle9Treatment`] for the tradeoff.
|
|
10988
|
-
*/
|
|
10989
|
-
treatment: components["schemas"]["GdprArticle9Treatment"];
|
|
10990
|
-
} | {
|
|
11431
|
+
} & components["schemas"]["GdprArticle9"]) | {
|
|
10991
11432
|
/** @constant */
|
|
10992
11433
|
kind: "pci_dss";
|
|
10993
11434
|
/**
|
|
@@ -10998,6 +11439,9 @@ interface components {
|
|
|
10998
11439
|
} | {
|
|
10999
11440
|
/** @constant */
|
|
11000
11441
|
kind: "ccpa";
|
|
11442
|
+
} | {
|
|
11443
|
+
/** @constant */
|
|
11444
|
+
kind: "soc2_secrets";
|
|
11001
11445
|
};
|
|
11002
11446
|
/**
|
|
11003
11447
|
* @description Closed polygon, given by its ordered vertices.
|
|
@@ -11238,7 +11682,7 @@ interface components {
|
|
|
11238
11682
|
* closure into provenance, so [`Predicate`] records only that a predicate
|
|
11239
11683
|
* matched, not which one.
|
|
11240
11684
|
*
|
|
11241
|
-
* [`Redaction`]: crate::entity::
|
|
11685
|
+
* [`Redaction`]: crate::entity::audit::AuditKind::Redaction
|
|
11242
11686
|
* [`Predicate`]: RuleMatch::Predicate
|
|
11243
11687
|
*/
|
|
11244
11688
|
RuleMatch: {
|
|
@@ -11248,6 +11692,13 @@ interface components {
|
|
|
11248
11692
|
} | "predicate" | "fallback";
|
|
11249
11693
|
/** @description Opaque run identifier (run_<uuid>). */
|
|
11250
11694
|
RunId: string;
|
|
11695
|
+
/** @description Structured metadata for a pipeline run. */
|
|
11696
|
+
RunMetadata: {
|
|
11697
|
+
/** @description Failure reason recorded when the run failed. */
|
|
11698
|
+
error?: string;
|
|
11699
|
+
/** @description Free-form labels attached to the run. */
|
|
11700
|
+
tags?: string[];
|
|
11701
|
+
};
|
|
11251
11702
|
/**
|
|
11252
11703
|
* @description A run's status change, broadcast on the core-NATS subject [`run_subject`].
|
|
11253
11704
|
*
|
|
@@ -11559,12 +12010,12 @@ interface components {
|
|
|
11559
12010
|
* to track whether a run was manually triggered, scheduled, or triggered by a webhook.
|
|
11560
12011
|
*/
|
|
11561
12012
|
SyncTriggerType: "manual" | "scheduled" | "webhook";
|
|
11562
|
-
/** @description Params of a `system
|
|
12013
|
+
/** @description Params of a `system.announcement` notification. */
|
|
11563
12014
|
SystemAnnouncementParams: {
|
|
11564
12015
|
/** @description Announcement message key or body. */
|
|
11565
12016
|
message: string;
|
|
11566
12017
|
};
|
|
11567
|
-
/** @description Params of a `system
|
|
12018
|
+
/** @description Params of a `system.report` notification. */
|
|
11568
12019
|
SystemReportParams: {
|
|
11569
12020
|
/**
|
|
11570
12021
|
* Format: uuid
|
|
@@ -11573,152 +12024,90 @@ interface components {
|
|
|
11573
12024
|
reportId?: string;
|
|
11574
12025
|
};
|
|
11575
12026
|
/**
|
|
11576
|
-
* @description
|
|
12027
|
+
* @description One node in an entity's audit DAG: a thing that happened, with its
|
|
12028
|
+
* effect on confidence and its tamper-evident links.
|
|
11577
12029
|
*
|
|
11578
|
-
*
|
|
11579
|
-
*
|
|
11580
|
-
*
|
|
11581
|
-
*
|
|
12030
|
+
* Events are recorded on an entity's [`AuditLog`], forming the full audit
|
|
12031
|
+
* trail of its life: each recognizer that found it, the deduplication that
|
|
12032
|
+
* fused them, any score calibration, and the redaction that hid it. The
|
|
12033
|
+
* uniform spine (who, resulting score, when) is the same for every event; the
|
|
12034
|
+
* [`kind`] carries the event-specific detail *and* the explanation of why the
|
|
12035
|
+
* event happened.
|
|
11582
12036
|
*
|
|
11583
|
-
*
|
|
12037
|
+
* Each event links to its [`parents`] by their [`hash`]: a birth event (a
|
|
12038
|
+
* recognizer's first detection) has no parents, a normal step has one, and a
|
|
12039
|
+
* [fusion](crate::entity::audit::AuditLog::record_fusion) has several. Its own
|
|
12040
|
+
* [`hash`] folds the
|
|
12041
|
+
* payload together with the parents' hashes, so altering any event breaks
|
|
12042
|
+
* every event downstream of it: [`AuditLog::verify`] walks the DAG and
|
|
12043
|
+
* reports the first break.
|
|
11584
12044
|
*
|
|
11585
|
-
*
|
|
11586
|
-
*
|
|
11587
|
-
*
|
|
11588
|
-
* `elide`) combines their entities into one: the survivor's
|
|
11589
|
-
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
11590
|
-
* contributing recognition event, plus a deduplication event, is
|
|
11591
|
-
* retained in its provenance. The entity therefore carries its full
|
|
11592
|
-
* audit trail with it.
|
|
12045
|
+
* `entity.confidence` always equals the [`confidence`] of the most recent
|
|
12046
|
+
* event. The confidence *flowing in* is not stored: it is the parents'
|
|
12047
|
+
* [`confidence`], recovered from the DAG.
|
|
11593
12048
|
*
|
|
11594
|
-
* [`
|
|
11595
|
-
* [`
|
|
11596
|
-
* [`
|
|
11597
|
-
* [`
|
|
11598
|
-
* [`
|
|
12049
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
12050
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
12051
|
+
* [`AuditLog::verify`]: crate::entity::audit::AuditLog::verify
|
|
12052
|
+
* [`kind`]: AuditEvent::kind
|
|
12053
|
+
* [`parents`]: AuditEvent::parents
|
|
12054
|
+
* [`hash`]: AuditEvent::hash
|
|
12055
|
+
* [`confidence`]: AuditEvent::confidence
|
|
11599
12056
|
*/
|
|
11600
|
-
|
|
11601
|
-
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
11602
|
-
confidence: components["schemas"]["Confidence"];
|
|
11603
|
-
/**
|
|
11604
|
-
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
11605
|
-
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
11606
|
-
* same real-world thing.
|
|
11607
|
-
*/
|
|
11608
|
-
coref?: components["schemas"]["EntityCoRef"];
|
|
11609
|
-
/**
|
|
11610
|
-
* Format: uuid
|
|
11611
|
-
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
11612
|
-
* when the entity is assembled.
|
|
11613
|
-
*/
|
|
11614
|
-
id: string;
|
|
12057
|
+
TabularAuditEvent: {
|
|
11615
12058
|
/**
|
|
11616
|
-
* @description
|
|
11617
|
-
*
|
|
12059
|
+
* @description Confidence after this event: the entity's effective confidence once it
|
|
12060
|
+
* has happened.
|
|
11618
12061
|
*/
|
|
11619
|
-
|
|
12062
|
+
confidence: components["schemas"]["Confidence"];
|
|
11620
12063
|
/**
|
|
11621
|
-
* @description
|
|
11622
|
-
*
|
|
12064
|
+
* @description This event's hash, over its payload and its parents' hashes. Assigned by
|
|
12065
|
+
* [`AuditLog`] when the event is recorded; read it through
|
|
12066
|
+
* [`hash`](Self::hash). Recomputing it is how the DAG is verified.
|
|
12067
|
+
*
|
|
12068
|
+
* Not publicly settable: only [`AuditLog`] assigns it, so a caller cannot
|
|
12069
|
+
* forge a self-consistent event outside the recording path.
|
|
12070
|
+
*
|
|
12071
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
11623
12072
|
*/
|
|
11624
|
-
|
|
12073
|
+
hash: components["schemas"]["AuditHash"];
|
|
12074
|
+
/** @description Kind of event, with its event-specific detail and its rationale. */
|
|
12075
|
+
kind: components["schemas"]["TabularAuditKind"];
|
|
11625
12076
|
/**
|
|
11626
|
-
* @description
|
|
11627
|
-
*
|
|
12077
|
+
* @description The events this one follows, by their hash. Empty for a birth event, one
|
|
12078
|
+
* entry for a normal step, several for a fusion. Assigned by [`AuditLog`]
|
|
12079
|
+
* when the event is recorded; read it through [`parents`](Self::parents).
|
|
12080
|
+
*
|
|
12081
|
+
* Not publicly settable: the links are the tamper-evident structure, so
|
|
12082
|
+
* only [`AuditLog::record`] / [`AuditLog::record_fusion`] assign them.
|
|
12083
|
+
*
|
|
12084
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
12085
|
+
* [`AuditLog::record`]: crate::entity::audit::AuditLog::record
|
|
12086
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
11628
12087
|
*/
|
|
11629
|
-
|
|
12088
|
+
parents: components["schemas"]["AuditHash"][];
|
|
11630
12089
|
/**
|
|
11631
|
-
* @description
|
|
11632
|
-
*
|
|
11633
|
-
*/
|
|
11634
|
-
provenance: components["schemas"]["TabularProvenance"];
|
|
11635
|
-
/**
|
|
11636
|
-
* @description Byte range of the match in the *recognized text* it was found in (the
|
|
11637
|
-
* OCR layout text, the audio transcript, or the text payload itself) —
|
|
11638
|
-
* the stable key back into that enrichment artifact, where the rich
|
|
11639
|
-
* context lives (which OCR block, which speaker) that the geometric
|
|
11640
|
-
* [`location`] cannot hold. `None` for entities not found via text
|
|
11641
|
-
* recognition (e.g. a VLM box). Provenance, not a coordinate: redaction
|
|
11642
|
-
* uses [`location`]; an audit uses this with the artifact.
|
|
11643
|
-
*
|
|
11644
|
-
* [`location`]: Entity::location
|
|
11645
|
-
*/
|
|
11646
|
-
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
11647
|
-
};
|
|
11648
|
-
/**
|
|
11649
|
-
* @description One recognized entity plus the optional reviewer override.
|
|
11650
|
-
*
|
|
11651
|
-
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
11652
|
-
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
11653
|
-
* derivation needs them schema-able. All four modalities elide
|
|
11654
|
-
* ships satisfy these under the `serde` + `schema` features.
|
|
11655
|
-
*/
|
|
11656
|
-
TabularEntityRecord: {
|
|
11657
|
-
/** @description The elide entity, as recognition produced it. */
|
|
11658
|
-
entity: components["schemas"]["TabularEntity"];
|
|
11659
|
-
/**
|
|
11660
|
-
* @description Reviewer-supplied redaction override.
|
|
11661
|
-
*
|
|
11662
|
-
* `None` means "use the matching policy rule's decision";
|
|
11663
|
-
* `Some(...)` overrides that rule for this specific entity
|
|
11664
|
-
* at apply time. Reviewer overrides take precedence over
|
|
11665
|
-
* every policy rule and inherit the authority of the
|
|
11666
|
-
* [`Review::policy_id`] they name — the audit event's
|
|
11667
|
-
* attribution stamps that policy so the trail names the
|
|
11668
|
-
* authority under which the override fired.
|
|
11669
|
-
*/
|
|
11670
|
-
review?: components["schemas"]["Review"];
|
|
11671
|
-
};
|
|
11672
|
-
/**
|
|
11673
|
-
* @description One thing that happened to an entity, with its effect on confidence.
|
|
11674
|
-
*
|
|
11675
|
-
* Events are recorded in order on an entity's [`Provenance`], forming
|
|
11676
|
-
* the full audit trail of its life: each recognizer that found it, the
|
|
11677
|
-
* deduplication that fused them, any score calibration, and the
|
|
11678
|
-
* redaction that hid it. The uniform spine (who, before/after score,
|
|
11679
|
-
* when, why) is the same for every event; the [`kind`] carries the
|
|
11680
|
-
* event-specific detail.
|
|
11681
|
-
*
|
|
11682
|
-
* `entity.confidence` always equals the [`after`] of the most recent
|
|
11683
|
-
* event.
|
|
11684
|
-
*
|
|
11685
|
-
* [`Provenance`]: crate::entity::provenance::Provenance
|
|
11686
|
-
* [`kind`]: Event::kind
|
|
11687
|
-
* [`after`]: Event::after
|
|
11688
|
-
*/
|
|
11689
|
-
TabularEvent: {
|
|
11690
|
-
/** @description Confidence after this event. */
|
|
11691
|
-
after: components["schemas"]["Confidence"];
|
|
11692
|
-
/** @description When the event happened (UTC). */
|
|
11693
|
-
at: string;
|
|
11694
|
-
/**
|
|
11695
|
-
* @description Confidence before this event, if there was a prior value. `None` on
|
|
11696
|
-
* the first (birth) event.
|
|
11697
|
-
*/
|
|
11698
|
-
before?: components["schemas"]["Confidence"];
|
|
11699
|
-
/** @description Kind of event, with its event-specific detail. */
|
|
11700
|
-
kind: components["schemas"]["TabularEventKind"];
|
|
11701
|
-
/** @description Free-text explanation of what the event did and why. */
|
|
11702
|
-
reason: string;
|
|
11703
|
-
/**
|
|
11704
|
-
* @description Who produced this event: a recognizer name, a deduplication strategy,
|
|
11705
|
-
* an operator, or whatever acted.
|
|
12090
|
+
* @description Who produced this event: a recognizer name, a deduplication strategy,
|
|
12091
|
+
* an operator, or whatever acted.
|
|
11706
12092
|
*/
|
|
11707
12093
|
source: string;
|
|
12094
|
+
/** @description When the event happened (UTC). */
|
|
12095
|
+
timestamp: string;
|
|
11708
12096
|
};
|
|
11709
12097
|
/**
|
|
11710
|
-
* @description Kind of an [`
|
|
12098
|
+
* @description Kind of an [`AuditEvent`], carrying its event-specific detail and the
|
|
12099
|
+
* rationale for why it happened.
|
|
11711
12100
|
*
|
|
11712
12101
|
* `#[non_exhaustive]`: new event kinds (verification, annotation, …)
|
|
11713
12102
|
* can be added compatibly. The recognition kinds ([`Pattern`],
|
|
11714
12103
|
* [`Model`]) carry the matched [`Location`]; the rest carry their own
|
|
11715
12104
|
* data.
|
|
11716
12105
|
*
|
|
11717
|
-
* [`Pattern`]:
|
|
11718
|
-
* [`Model`]:
|
|
12106
|
+
* [`Pattern`]: AuditKind::Pattern
|
|
12107
|
+
* [`Model`]: AuditKind::Model
|
|
11719
12108
|
* [`Location`]: Modality::Location
|
|
11720
12109
|
*/
|
|
11721
|
-
|
|
12110
|
+
TabularAuditKind: {
|
|
11722
12111
|
/** @constant */
|
|
11723
12112
|
kind: "pattern";
|
|
11724
12113
|
/** @description Where the recognizer matched. */
|
|
@@ -11782,7 +12171,7 @@ interface components {
|
|
|
11782
12171
|
* it is the keyword resolved through the modality's [`locate`] (a
|
|
11783
12172
|
* pixel box for image, a time span for audio, the byte range for
|
|
11784
12173
|
* text/tabular). `None` when the keyword's stream range could not be
|
|
11785
|
-
* placed
|
|
12174
|
+
* placed, symmetric with a match the recognizer itself drops.
|
|
11786
12175
|
*
|
|
11787
12176
|
* [`locate`]: crate::modality::TextRecognizable::locate
|
|
11788
12177
|
*/
|
|
@@ -11800,12 +12189,158 @@ interface components {
|
|
|
11800
12189
|
/** @description How much the output leaks about the original. */
|
|
11801
12190
|
leak_profile: components["schemas"]["LeakProfile"];
|
|
11802
12191
|
/**
|
|
11803
|
-
* @description Which selection rule chose this operator
|
|
12192
|
+
* @description Which selection rule chose this operator: the automatic "why"
|
|
11804
12193
|
* (matched a label, a tag, a predicate, or the fallback).
|
|
11805
12194
|
*/
|
|
11806
12195
|
matched_by: components["schemas"]["RuleMatch"];
|
|
11807
12196
|
/** @description Which operator (name + version) ran. */
|
|
11808
12197
|
operator: components["schemas"]["OperatorId"];
|
|
12198
|
+
/**
|
|
12199
|
+
* @description BLAKE3 digest of the original text the operator hid, when the
|
|
12200
|
+
* redaction layer recorded it. Proves *what* was redacted without
|
|
12201
|
+
* storing the plaintext; `None` when the operator did not capture it.
|
|
12202
|
+
*/
|
|
12203
|
+
span_hash?: components["schemas"]["AuditHash"];
|
|
12204
|
+
/**
|
|
12205
|
+
* Format: uint32
|
|
12206
|
+
* @description Byte length of the original text the operator hid, paired with
|
|
12207
|
+
* [`span_hash`](Self::Redaction::span_hash). `None` when not captured.
|
|
12208
|
+
*/
|
|
12209
|
+
span_length?: number;
|
|
12210
|
+
};
|
|
12211
|
+
/**
|
|
12212
|
+
* @description Full audit trail of an [`Entity`]: every [`AuditEvent`] in its life, as a
|
|
12213
|
+
* tamper-evident DAG.
|
|
12214
|
+
*
|
|
12215
|
+
* Where Presidio keeps a shallow, optional, per-stage explanation that is
|
|
12216
|
+
* stripped by default, an `AuditLog` is always present and records the
|
|
12217
|
+
* entity's *entire* life: each recognizer that found it, the deduplication
|
|
12218
|
+
* that fused them, any confidence calibration, and the redaction that hid it.
|
|
12219
|
+
* Nothing is collapsed: every recognizer keeps its own recognition event with
|
|
12220
|
+
* its location and score.
|
|
12221
|
+
*
|
|
12222
|
+
* The events form a **directed acyclic graph**, not a flat list. A recognizer
|
|
12223
|
+
* records a birth event (no parents); each later step links to the event it
|
|
12224
|
+
* follows; and a [fusion](Self::record_fusion) links to *several* parents at
|
|
12225
|
+
* once: the heads of the trails it combines. This is the true shape of a
|
|
12226
|
+
* deduplicated entity: two recognizers are siblings, then a fusion joins them.
|
|
12227
|
+
* The events are stored in the order they were recorded, which is a
|
|
12228
|
+
* topological order of the DAG (a parent is always recorded before its
|
|
12229
|
+
* children).
|
|
12230
|
+
*
|
|
12231
|
+
* Two chains ride the DAG's edges:
|
|
12232
|
+
*
|
|
12233
|
+
* - a **confidence chain**, where each event's [`confidence`] is the entity's
|
|
12234
|
+
* effective score after it; the score flowing *in* is its parents'
|
|
12235
|
+
* confidence, so [`final_confidence`] and the full history are recoverable;
|
|
12236
|
+
* - a **hash chain**, where each event's [`hash`] folds its payload together
|
|
12237
|
+
* with its parents' hashes, so any edit, reorder, insertion, or deletion of
|
|
12238
|
+
* an earlier event breaks every event downstream. [`verify`] walks the DAG
|
|
12239
|
+
* and reports the first break.
|
|
12240
|
+
*
|
|
12241
|
+
* [`Entity`]: crate::entity::Entity
|
|
12242
|
+
* [`confidence`]: AuditEvent::confidence
|
|
12243
|
+
* [`hash`]: AuditEvent::hash
|
|
12244
|
+
* [`final_confidence`]: Self::final_confidence
|
|
12245
|
+
* [`verify`]: Self::verify
|
|
12246
|
+
*/
|
|
12247
|
+
TabularAuditLog: components["schemas"]["TabularAuditEvent"][];
|
|
12248
|
+
/**
|
|
12249
|
+
* @description Detected piece of sensitive information within some medium.
|
|
12250
|
+
*
|
|
12251
|
+
* Generic over the [`Modality`] `M`, which is what makes the model
|
|
12252
|
+
* multimodal: a text pipeline yields `Entity<Text>`, an audio pipeline
|
|
12253
|
+
* `Entity<Audio>`, and so on. The entity's location is the modality's
|
|
12254
|
+
* [`Location`] type, `M::Location`.
|
|
12255
|
+
*
|
|
12256
|
+
* # Birth and fusion
|
|
12257
|
+
*
|
|
12258
|
+
* A recognizer emits an entity directly, carrying a single recognition
|
|
12259
|
+
* [`AuditEvent`] (its own finding) in the entity's [`audit`] trail. When
|
|
12260
|
+
* several recognizers find the same thing, a fusion step (in
|
|
12261
|
+
* `elide`) combines their entities into one: the survivor's
|
|
12262
|
+
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
12263
|
+
* contributing recognition event, plus a deduplication event, is
|
|
12264
|
+
* retained in its audit trail. The entity therefore carries its full
|
|
12265
|
+
* audit trail with it.
|
|
12266
|
+
*
|
|
12267
|
+
* [`Location`]: Modality::Location
|
|
12268
|
+
* [`AuditEvent`]: crate::entity::audit::AuditEvent
|
|
12269
|
+
* [`audit`]: Entity::audit
|
|
12270
|
+
* [`location`]: Entity::location
|
|
12271
|
+
* [`confidence`]: Entity::confidence
|
|
12272
|
+
*/
|
|
12273
|
+
TabularEntity: {
|
|
12274
|
+
/**
|
|
12275
|
+
* @description Tamper-evident audit trail: every contributing detection, the fusion
|
|
12276
|
+
* event if any, and the redaction that hid it, as a hash-linked DAG.
|
|
12277
|
+
*/
|
|
12278
|
+
audit: components["schemas"]["TabularAuditLog"];
|
|
12279
|
+
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
12280
|
+
confidence: components["schemas"]["Confidence"];
|
|
12281
|
+
/**
|
|
12282
|
+
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
12283
|
+
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
12284
|
+
* same real-world thing.
|
|
12285
|
+
*/
|
|
12286
|
+
coref?: components["schemas"]["EntityCoRef"];
|
|
12287
|
+
/**
|
|
12288
|
+
* Format: uuid
|
|
12289
|
+
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
12290
|
+
* when the entity is assembled.
|
|
12291
|
+
*/
|
|
12292
|
+
id: string;
|
|
12293
|
+
/**
|
|
12294
|
+
* @description What kind of sensitive information this is (resolved via a
|
|
12295
|
+
* [`LabelCatalog`]).
|
|
12296
|
+
*/
|
|
12297
|
+
label: components["schemas"]["LabelRef"];
|
|
12298
|
+
/**
|
|
12299
|
+
* @description The language of this entity's surrounding text, when a recognizer
|
|
12300
|
+
* resolved one. `None` when unknown or language-agnostic.
|
|
12301
|
+
*/
|
|
12302
|
+
language?: string;
|
|
12303
|
+
/**
|
|
12304
|
+
* @description Location of the entity within the medium (fused, if it came from more
|
|
12305
|
+
* than one detection).
|
|
12306
|
+
*/
|
|
12307
|
+
location: components["schemas"]["TabularLocation"];
|
|
12308
|
+
/**
|
|
12309
|
+
* @description Byte range of the match in the *recognized text* it was found in (the
|
|
12310
|
+
* OCR layout text, the audio transcript, or the text payload itself) —
|
|
12311
|
+
* the stable key back into that enrichment artifact, where the rich
|
|
12312
|
+
* context lives (which OCR block, which speaker) that the geometric
|
|
12313
|
+
* [`location`] cannot hold. `None` for entities not found via text
|
|
12314
|
+
* recognition (e.g. a VLM box). An audit key, not a coordinate: redaction
|
|
12315
|
+
* uses [`location`]; an audit uses this with the artifact.
|
|
12316
|
+
*
|
|
12317
|
+
* [`location`]: Entity::location
|
|
12318
|
+
*/
|
|
12319
|
+
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
12320
|
+
};
|
|
12321
|
+
/**
|
|
12322
|
+
* @description One recognized entity plus the optional reviewer override.
|
|
12323
|
+
*
|
|
12324
|
+
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
12325
|
+
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
12326
|
+
* derivation needs them schema-able. All four modalities elide
|
|
12327
|
+
* ships satisfy these under the `serde` + `schema` features.
|
|
12328
|
+
*/
|
|
12329
|
+
TabularEntityRecord: {
|
|
12330
|
+
/** @description The elide entity, as recognition produced it. */
|
|
12331
|
+
entity: components["schemas"]["TabularEntity"];
|
|
12332
|
+
/**
|
|
12333
|
+
* @description Reviewer-supplied redaction override.
|
|
12334
|
+
*
|
|
12335
|
+
* `None` means "use the matching policy rule's decision";
|
|
12336
|
+
* `Some(...)` overrides that rule for this specific entity
|
|
12337
|
+
* at apply time. Reviewer overrides take precedence over
|
|
12338
|
+
* every policy rule and inherit the authority of the
|
|
12339
|
+
* [`Review::policy_id`] they name — the audit event's
|
|
12340
|
+
* attribution stamps that policy so the trail names the
|
|
12341
|
+
* authority under which the override fired.
|
|
12342
|
+
*/
|
|
12343
|
+
review?: components["schemas"]["Review"];
|
|
11809
12344
|
};
|
|
11810
12345
|
/**
|
|
11811
12346
|
* @description Located, typed piece of context a recognizer may treat as in-context
|
|
@@ -11877,31 +12412,6 @@ interface components {
|
|
|
11877
12412
|
*/
|
|
11878
12413
|
start_offset?: number;
|
|
11879
12414
|
};
|
|
11880
|
-
/**
|
|
11881
|
-
* @description Full audit trail of an [`Entity`]: every [`Event`] in its life, in
|
|
11882
|
-
* order.
|
|
11883
|
-
*
|
|
11884
|
-
* This is the model's answer to "full provenance": where Presidio keeps
|
|
11885
|
-
* a shallow, optional, per-stage explanation that is stripped by
|
|
11886
|
-
* default, a `Provenance` is always present and records the entity's
|
|
11887
|
-
* *entire* life as an ordered list of events: each recognizer that
|
|
11888
|
-
* found it, the deduplication that fused them, any confidence
|
|
11889
|
-
* calibration, and the redaction that hid it. Nothing is collapsed:
|
|
11890
|
-
* every recognizer keeps its own recognition event with its location
|
|
11891
|
-
* and score.
|
|
11892
|
-
*
|
|
11893
|
-
* The events form a confidence chain (each event's [`after`] is the
|
|
11894
|
-
* next's [`before`]) so the final confidence and its full history are
|
|
11895
|
-
* always recoverable.
|
|
11896
|
-
*
|
|
11897
|
-
* [`Entity`]: crate::entity::Entity
|
|
11898
|
-
* [`after`]: Event::after
|
|
11899
|
-
* [`before`]: Event::before
|
|
11900
|
-
*/
|
|
11901
|
-
TabularProvenance: {
|
|
11902
|
-
/** @description Events, in the order they happened. */
|
|
11903
|
-
events: components["schemas"]["TabularEvent"][];
|
|
11904
|
-
};
|
|
11905
12415
|
/** @description Operator spec a `redact` tabular rule carries. */
|
|
11906
12416
|
TabularRedaction: {
|
|
11907
12417
|
/** @constant */
|
|
@@ -11979,163 +12489,90 @@ interface components {
|
|
|
11979
12489
|
payload?: unknown;
|
|
11980
12490
|
};
|
|
11981
12491
|
/**
|
|
11982
|
-
* @description
|
|
11983
|
-
*
|
|
11984
|
-
* Either the payload a text recognizer inspects, or the value sliced out
|
|
11985
|
-
* at an entity's location for an operator.
|
|
11986
|
-
*
|
|
11987
|
-
* Held as a [`HipStr`] so short values inline and longer ones share a
|
|
11988
|
-
* refcounted buffer, making cheap clones when one payload is passed to
|
|
11989
|
-
* several recognizers.
|
|
11990
|
-
*/
|
|
11991
|
-
TextData: string;
|
|
11992
|
-
/**
|
|
11993
|
-
* @description Detected piece of sensitive information within some medium.
|
|
12492
|
+
* @description One node in an entity's audit DAG: a thing that happened, with its
|
|
12493
|
+
* effect on confidence and its tamper-evident links.
|
|
11994
12494
|
*
|
|
11995
|
-
*
|
|
11996
|
-
*
|
|
11997
|
-
*
|
|
11998
|
-
*
|
|
12495
|
+
* Events are recorded on an entity's [`AuditLog`], forming the full audit
|
|
12496
|
+
* trail of its life: each recognizer that found it, the deduplication that
|
|
12497
|
+
* fused them, any score calibration, and the redaction that hid it. The
|
|
12498
|
+
* uniform spine (who, resulting score, when) is the same for every event; the
|
|
12499
|
+
* [`kind`] carries the event-specific detail *and* the explanation of why the
|
|
12500
|
+
* event happened.
|
|
11999
12501
|
*
|
|
12000
|
-
*
|
|
12502
|
+
* Each event links to its [`parents`] by their [`hash`]: a birth event (a
|
|
12503
|
+
* recognizer's first detection) has no parents, a normal step has one, and a
|
|
12504
|
+
* [fusion](crate::entity::audit::AuditLog::record_fusion) has several. Its own
|
|
12505
|
+
* [`hash`] folds the
|
|
12506
|
+
* payload together with the parents' hashes, so altering any event breaks
|
|
12507
|
+
* every event downstream of it: [`AuditLog::verify`] walks the DAG and
|
|
12508
|
+
* reports the first break.
|
|
12001
12509
|
*
|
|
12002
|
-
*
|
|
12003
|
-
*
|
|
12004
|
-
*
|
|
12005
|
-
* `elide`) combines their entities into one: the survivor's
|
|
12006
|
-
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
12007
|
-
* contributing recognition event, plus a deduplication event, is
|
|
12008
|
-
* retained in its provenance. The entity therefore carries its full
|
|
12009
|
-
* audit trail with it.
|
|
12510
|
+
* `entity.confidence` always equals the [`confidence`] of the most recent
|
|
12511
|
+
* event. The confidence *flowing in* is not stored: it is the parents'
|
|
12512
|
+
* [`confidence`], recovered from the DAG.
|
|
12010
12513
|
*
|
|
12011
|
-
* [`
|
|
12012
|
-
* [`
|
|
12013
|
-
* [`
|
|
12014
|
-
* [`
|
|
12015
|
-
* [`
|
|
12514
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
12515
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
12516
|
+
* [`AuditLog::verify`]: crate::entity::audit::AuditLog::verify
|
|
12517
|
+
* [`kind`]: AuditEvent::kind
|
|
12518
|
+
* [`parents`]: AuditEvent::parents
|
|
12519
|
+
* [`hash`]: AuditEvent::hash
|
|
12520
|
+
* [`confidence`]: AuditEvent::confidence
|
|
12016
12521
|
*/
|
|
12017
|
-
|
|
12018
|
-
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
12019
|
-
confidence: components["schemas"]["Confidence"];
|
|
12522
|
+
TextAuditEvent: {
|
|
12020
12523
|
/**
|
|
12021
|
-
* @description
|
|
12022
|
-
*
|
|
12023
|
-
* same real-world thing.
|
|
12024
|
-
*/
|
|
12025
|
-
coref?: components["schemas"]["EntityCoRef"];
|
|
12026
|
-
/**
|
|
12027
|
-
* Format: uuid
|
|
12028
|
-
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
12029
|
-
* when the entity is assembled.
|
|
12524
|
+
* @description Confidence after this event: the entity's effective confidence once it
|
|
12525
|
+
* has happened.
|
|
12030
12526
|
*/
|
|
12031
|
-
|
|
12032
|
-
/**
|
|
12033
|
-
* @description What kind of sensitive information this is (resolved via a
|
|
12034
|
-
* [`LabelCatalog`]).
|
|
12035
|
-
*/
|
|
12036
|
-
label: components["schemas"]["LabelRef"];
|
|
12037
|
-
/**
|
|
12038
|
-
* @description The language of this entity's surrounding text, when a recognizer
|
|
12039
|
-
* resolved one. `None` when unknown or language-agnostic.
|
|
12040
|
-
*/
|
|
12041
|
-
language?: string;
|
|
12042
|
-
/**
|
|
12043
|
-
* @description Location of the entity within the medium (fused, if it came from more
|
|
12044
|
-
* than one detection).
|
|
12045
|
-
*/
|
|
12046
|
-
location: components["schemas"]["TextLocation"];
|
|
12047
|
-
/**
|
|
12048
|
-
* @description Detection audit trail: every contributing detection and the fusion
|
|
12049
|
-
* event, if any.
|
|
12050
|
-
*/
|
|
12051
|
-
provenance: components["schemas"]["TextProvenance"];
|
|
12527
|
+
confidence: components["schemas"]["Confidence"];
|
|
12052
12528
|
/**
|
|
12053
|
-
* @description
|
|
12054
|
-
*
|
|
12055
|
-
*
|
|
12056
|
-
* context lives (which OCR block, which speaker) that the geometric
|
|
12057
|
-
* [`location`] cannot hold. `None` for entities not found via text
|
|
12058
|
-
* recognition (e.g. a VLM box). Provenance, not a coordinate: redaction
|
|
12059
|
-
* uses [`location`]; an audit uses this with the artifact.
|
|
12529
|
+
* @description This event's hash, over its payload and its parents' hashes. Assigned by
|
|
12530
|
+
* [`AuditLog`] when the event is recorded; read it through
|
|
12531
|
+
* [`hash`](Self::hash). Recomputing it is how the DAG is verified.
|
|
12060
12532
|
*
|
|
12061
|
-
* [`
|
|
12062
|
-
|
|
12063
|
-
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
12064
|
-
};
|
|
12065
|
-
/**
|
|
12066
|
-
* @description One recognized entity plus the optional reviewer override.
|
|
12067
|
-
*
|
|
12068
|
-
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
12069
|
-
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
12070
|
-
* derivation needs them schema-able. All four modalities elide
|
|
12071
|
-
* ships satisfy these under the `serde` + `schema` features.
|
|
12072
|
-
*/
|
|
12073
|
-
TextEntityRecord: {
|
|
12074
|
-
/** @description The elide entity, as recognition produced it. */
|
|
12075
|
-
entity: components["schemas"]["TextEntity"];
|
|
12076
|
-
/**
|
|
12077
|
-
* @description Reviewer-supplied redaction override.
|
|
12533
|
+
* Not publicly settable: only [`AuditLog`] assigns it, so a caller cannot
|
|
12534
|
+
* forge a self-consistent event outside the recording path.
|
|
12078
12535
|
*
|
|
12079
|
-
* `
|
|
12080
|
-
* `Some(...)` overrides that rule for this specific entity
|
|
12081
|
-
* at apply time. Reviewer overrides take precedence over
|
|
12082
|
-
* every policy rule and inherit the authority of the
|
|
12083
|
-
* [`Review::policy_id`] they name — the audit event's
|
|
12084
|
-
* attribution stamps that policy so the trail names the
|
|
12085
|
-
* authority under which the override fired.
|
|
12536
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
12086
12537
|
*/
|
|
12087
|
-
|
|
12088
|
-
|
|
12089
|
-
|
|
12090
|
-
* @description One thing that happened to an entity, with its effect on confidence.
|
|
12091
|
-
*
|
|
12092
|
-
* Events are recorded in order on an entity's [`Provenance`], forming
|
|
12093
|
-
* the full audit trail of its life: each recognizer that found it, the
|
|
12094
|
-
* deduplication that fused them, any score calibration, and the
|
|
12095
|
-
* redaction that hid it. The uniform spine (who, before/after score,
|
|
12096
|
-
* when, why) is the same for every event; the [`kind`] carries the
|
|
12097
|
-
* event-specific detail.
|
|
12098
|
-
*
|
|
12099
|
-
* `entity.confidence` always equals the [`after`] of the most recent
|
|
12100
|
-
* event.
|
|
12101
|
-
*
|
|
12102
|
-
* [`Provenance`]: crate::entity::provenance::Provenance
|
|
12103
|
-
* [`kind`]: Event::kind
|
|
12104
|
-
* [`after`]: Event::after
|
|
12105
|
-
*/
|
|
12106
|
-
TextEvent: {
|
|
12107
|
-
/** @description Confidence after this event. */
|
|
12108
|
-
after: components["schemas"]["Confidence"];
|
|
12109
|
-
/** @description When the event happened (UTC). */
|
|
12110
|
-
at: string;
|
|
12538
|
+
hash: components["schemas"]["AuditHash"];
|
|
12539
|
+
/** @description Kind of event, with its event-specific detail and its rationale. */
|
|
12540
|
+
kind: components["schemas"]["TextAuditKind"];
|
|
12111
12541
|
/**
|
|
12112
|
-
* @description
|
|
12113
|
-
*
|
|
12542
|
+
* @description The events this one follows, by their hash. Empty for a birth event, one
|
|
12543
|
+
* entry for a normal step, several for a fusion. Assigned by [`AuditLog`]
|
|
12544
|
+
* when the event is recorded; read it through [`parents`](Self::parents).
|
|
12545
|
+
*
|
|
12546
|
+
* Not publicly settable: the links are the tamper-evident structure, so
|
|
12547
|
+
* only [`AuditLog::record`] / [`AuditLog::record_fusion`] assign them.
|
|
12548
|
+
*
|
|
12549
|
+
* [`AuditLog`]: crate::entity::audit::AuditLog
|
|
12550
|
+
* [`AuditLog::record`]: crate::entity::audit::AuditLog::record
|
|
12551
|
+
* [`AuditLog::record_fusion`]: crate::entity::audit::AuditLog::record_fusion
|
|
12114
12552
|
*/
|
|
12115
|
-
|
|
12116
|
-
/** @description Kind of event, with its event-specific detail. */
|
|
12117
|
-
kind: components["schemas"]["TextEventKind"];
|
|
12118
|
-
/** @description Free-text explanation of what the event did and why. */
|
|
12119
|
-
reason: string;
|
|
12553
|
+
parents: components["schemas"]["AuditHash"][];
|
|
12120
12554
|
/**
|
|
12121
12555
|
* @description Who produced this event: a recognizer name, a deduplication strategy,
|
|
12122
12556
|
* an operator, or whatever acted.
|
|
12123
12557
|
*/
|
|
12124
12558
|
source: string;
|
|
12559
|
+
/** @description When the event happened (UTC). */
|
|
12560
|
+
timestamp: string;
|
|
12125
12561
|
};
|
|
12126
12562
|
/**
|
|
12127
|
-
* @description Kind of an [`
|
|
12563
|
+
* @description Kind of an [`AuditEvent`], carrying its event-specific detail and the
|
|
12564
|
+
* rationale for why it happened.
|
|
12128
12565
|
*
|
|
12129
12566
|
* `#[non_exhaustive]`: new event kinds (verification, annotation, …)
|
|
12130
12567
|
* can be added compatibly. The recognition kinds ([`Pattern`],
|
|
12131
12568
|
* [`Model`]) carry the matched [`Location`]; the rest carry their own
|
|
12132
12569
|
* data.
|
|
12133
12570
|
*
|
|
12134
|
-
* [`Pattern`]:
|
|
12135
|
-
* [`Model`]:
|
|
12571
|
+
* [`Pattern`]: AuditKind::Pattern
|
|
12572
|
+
* [`Model`]: AuditKind::Model
|
|
12136
12573
|
* [`Location`]: Modality::Location
|
|
12137
12574
|
*/
|
|
12138
|
-
|
|
12575
|
+
TextAuditKind: {
|
|
12139
12576
|
/** @constant */
|
|
12140
12577
|
kind: "pattern";
|
|
12141
12578
|
/** @description Where the recognizer matched. */
|
|
@@ -12199,7 +12636,7 @@ interface components {
|
|
|
12199
12636
|
* it is the keyword resolved through the modality's [`locate`] (a
|
|
12200
12637
|
* pixel box for image, a time span for audio, the byte range for
|
|
12201
12638
|
* text/tabular). `None` when the keyword's stream range could not be
|
|
12202
|
-
* placed
|
|
12639
|
+
* placed, symmetric with a match the recognizer itself drops.
|
|
12203
12640
|
*
|
|
12204
12641
|
* [`locate`]: crate::modality::TextRecognizable::locate
|
|
12205
12642
|
*/
|
|
@@ -12217,12 +12654,169 @@ interface components {
|
|
|
12217
12654
|
/** @description How much the output leaks about the original. */
|
|
12218
12655
|
leak_profile: components["schemas"]["LeakProfile"];
|
|
12219
12656
|
/**
|
|
12220
|
-
* @description Which selection rule chose this operator
|
|
12657
|
+
* @description Which selection rule chose this operator: the automatic "why"
|
|
12221
12658
|
* (matched a label, a tag, a predicate, or the fallback).
|
|
12222
12659
|
*/
|
|
12223
12660
|
matched_by: components["schemas"]["RuleMatch"];
|
|
12224
12661
|
/** @description Which operator (name + version) ran. */
|
|
12225
12662
|
operator: components["schemas"]["OperatorId"];
|
|
12663
|
+
/**
|
|
12664
|
+
* @description BLAKE3 digest of the original text the operator hid, when the
|
|
12665
|
+
* redaction layer recorded it. Proves *what* was redacted without
|
|
12666
|
+
* storing the plaintext; `None` when the operator did not capture it.
|
|
12667
|
+
*/
|
|
12668
|
+
span_hash?: components["schemas"]["AuditHash"];
|
|
12669
|
+
/**
|
|
12670
|
+
* Format: uint32
|
|
12671
|
+
* @description Byte length of the original text the operator hid, paired with
|
|
12672
|
+
* [`span_hash`](Self::Redaction::span_hash). `None` when not captured.
|
|
12673
|
+
*/
|
|
12674
|
+
span_length?: number;
|
|
12675
|
+
};
|
|
12676
|
+
/**
|
|
12677
|
+
* @description Full audit trail of an [`Entity`]: every [`AuditEvent`] in its life, as a
|
|
12678
|
+
* tamper-evident DAG.
|
|
12679
|
+
*
|
|
12680
|
+
* Where Presidio keeps a shallow, optional, per-stage explanation that is
|
|
12681
|
+
* stripped by default, an `AuditLog` is always present and records the
|
|
12682
|
+
* entity's *entire* life: each recognizer that found it, the deduplication
|
|
12683
|
+
* that fused them, any confidence calibration, and the redaction that hid it.
|
|
12684
|
+
* Nothing is collapsed: every recognizer keeps its own recognition event with
|
|
12685
|
+
* its location and score.
|
|
12686
|
+
*
|
|
12687
|
+
* The events form a **directed acyclic graph**, not a flat list. A recognizer
|
|
12688
|
+
* records a birth event (no parents); each later step links to the event it
|
|
12689
|
+
* follows; and a [fusion](Self::record_fusion) links to *several* parents at
|
|
12690
|
+
* once: the heads of the trails it combines. This is the true shape of a
|
|
12691
|
+
* deduplicated entity: two recognizers are siblings, then a fusion joins them.
|
|
12692
|
+
* The events are stored in the order they were recorded, which is a
|
|
12693
|
+
* topological order of the DAG (a parent is always recorded before its
|
|
12694
|
+
* children).
|
|
12695
|
+
*
|
|
12696
|
+
* Two chains ride the DAG's edges:
|
|
12697
|
+
*
|
|
12698
|
+
* - a **confidence chain**, where each event's [`confidence`] is the entity's
|
|
12699
|
+
* effective score after it; the score flowing *in* is its parents'
|
|
12700
|
+
* confidence, so [`final_confidence`] and the full history are recoverable;
|
|
12701
|
+
* - a **hash chain**, where each event's [`hash`] folds its payload together
|
|
12702
|
+
* with its parents' hashes, so any edit, reorder, insertion, or deletion of
|
|
12703
|
+
* an earlier event breaks every event downstream. [`verify`] walks the DAG
|
|
12704
|
+
* and reports the first break.
|
|
12705
|
+
*
|
|
12706
|
+
* [`Entity`]: crate::entity::Entity
|
|
12707
|
+
* [`confidence`]: AuditEvent::confidence
|
|
12708
|
+
* [`hash`]: AuditEvent::hash
|
|
12709
|
+
* [`final_confidence`]: Self::final_confidence
|
|
12710
|
+
* [`verify`]: Self::verify
|
|
12711
|
+
*/
|
|
12712
|
+
TextAuditLog: components["schemas"]["TextAuditEvent"][];
|
|
12713
|
+
/**
|
|
12714
|
+
* @description Run of text.
|
|
12715
|
+
*
|
|
12716
|
+
* Either the payload a text recognizer inspects, or the value sliced out
|
|
12717
|
+
* at an entity's location for an operator.
|
|
12718
|
+
*
|
|
12719
|
+
* Held as a [`HipStr`] so short values inline and longer ones share a
|
|
12720
|
+
* refcounted buffer, making cheap clones when one payload is passed to
|
|
12721
|
+
* several recognizers.
|
|
12722
|
+
*/
|
|
12723
|
+
TextData: string;
|
|
12724
|
+
/**
|
|
12725
|
+
* @description Detected piece of sensitive information within some medium.
|
|
12726
|
+
*
|
|
12727
|
+
* Generic over the [`Modality`] `M`, which is what makes the model
|
|
12728
|
+
* multimodal: a text pipeline yields `Entity<Text>`, an audio pipeline
|
|
12729
|
+
* `Entity<Audio>`, and so on. The entity's location is the modality's
|
|
12730
|
+
* [`Location`] type, `M::Location`.
|
|
12731
|
+
*
|
|
12732
|
+
* # Birth and fusion
|
|
12733
|
+
*
|
|
12734
|
+
* A recognizer emits an entity directly, carrying a single recognition
|
|
12735
|
+
* [`AuditEvent`] (its own finding) in the entity's [`audit`] trail. When
|
|
12736
|
+
* several recognizers find the same thing, a fusion step (in
|
|
12737
|
+
* `elide`) combines their entities into one: the survivor's
|
|
12738
|
+
* [`location`] and [`confidence`] are the *fused* values, and every
|
|
12739
|
+
* contributing recognition event, plus a deduplication event, is
|
|
12740
|
+
* retained in its audit trail. The entity therefore carries its full
|
|
12741
|
+
* audit trail with it.
|
|
12742
|
+
*
|
|
12743
|
+
* [`Location`]: Modality::Location
|
|
12744
|
+
* [`AuditEvent`]: crate::entity::audit::AuditEvent
|
|
12745
|
+
* [`audit`]: Entity::audit
|
|
12746
|
+
* [`location`]: Entity::location
|
|
12747
|
+
* [`confidence`]: Entity::confidence
|
|
12748
|
+
*/
|
|
12749
|
+
TextEntity: {
|
|
12750
|
+
/**
|
|
12751
|
+
* @description Tamper-evident audit trail: every contributing detection, the fusion
|
|
12752
|
+
* event if any, and the redaction that hid it, as a hash-linked DAG.
|
|
12753
|
+
*/
|
|
12754
|
+
audit: components["schemas"]["TextAuditLog"];
|
|
12755
|
+
/** @description Effective confidence in `0.0..=1.0` (fused, if applicable). */
|
|
12756
|
+
confidence: components["schemas"]["Confidence"];
|
|
12757
|
+
/**
|
|
12758
|
+
* @description Coreference identifier, if a recognizer resolved this entity as one
|
|
12759
|
+
* mention of a cluster. Entities sharing an [`EntityCoRef`] denote the
|
|
12760
|
+
* same real-world thing.
|
|
12761
|
+
*/
|
|
12762
|
+
coref?: components["schemas"]["EntityCoRef"];
|
|
12763
|
+
/**
|
|
12764
|
+
* Format: uuid
|
|
12765
|
+
* @description Stable unique identity for this entity (time-ordered UUIDv7), minted
|
|
12766
|
+
* when the entity is assembled.
|
|
12767
|
+
*/
|
|
12768
|
+
id: string;
|
|
12769
|
+
/**
|
|
12770
|
+
* @description What kind of sensitive information this is (resolved via a
|
|
12771
|
+
* [`LabelCatalog`]).
|
|
12772
|
+
*/
|
|
12773
|
+
label: components["schemas"]["LabelRef"];
|
|
12774
|
+
/**
|
|
12775
|
+
* @description The language of this entity's surrounding text, when a recognizer
|
|
12776
|
+
* resolved one. `None` when unknown or language-agnostic.
|
|
12777
|
+
*/
|
|
12778
|
+
language?: string;
|
|
12779
|
+
/**
|
|
12780
|
+
* @description Location of the entity within the medium (fused, if it came from more
|
|
12781
|
+
* than one detection).
|
|
12782
|
+
*/
|
|
12783
|
+
location: components["schemas"]["TextLocation"];
|
|
12784
|
+
/**
|
|
12785
|
+
* @description Byte range of the match in the *recognized text* it was found in (the
|
|
12786
|
+
* OCR layout text, the audio transcript, or the text payload itself) —
|
|
12787
|
+
* the stable key back into that enrichment artifact, where the rich
|
|
12788
|
+
* context lives (which OCR block, which speaker) that the geometric
|
|
12789
|
+
* [`location`] cannot hold. `None` for entities not found via text
|
|
12790
|
+
* recognition (e.g. a VLM box). An audit key, not a coordinate: redaction
|
|
12791
|
+
* uses [`location`]; an audit uses this with the artifact.
|
|
12792
|
+
*
|
|
12793
|
+
* [`location`]: Entity::location
|
|
12794
|
+
*/
|
|
12795
|
+
recognized_range?: components["schemas"]["Range_of_uint"];
|
|
12796
|
+
};
|
|
12797
|
+
/**
|
|
12798
|
+
* @description One recognized entity plus the optional reviewer override.
|
|
12799
|
+
*
|
|
12800
|
+
* The bound mirrors elide's [`Entity<M>`]: serialization needs
|
|
12801
|
+
* `M::Location` and `M::Data` (de)serializable, and JsonSchema
|
|
12802
|
+
* derivation needs them schema-able. All four modalities elide
|
|
12803
|
+
* ships satisfy these under the `serde` + `schema` features.
|
|
12804
|
+
*/
|
|
12805
|
+
TextEntityRecord: {
|
|
12806
|
+
/** @description The elide entity, as recognition produced it. */
|
|
12807
|
+
entity: components["schemas"]["TextEntity"];
|
|
12808
|
+
/**
|
|
12809
|
+
* @description Reviewer-supplied redaction override.
|
|
12810
|
+
*
|
|
12811
|
+
* `None` means "use the matching policy rule's decision";
|
|
12812
|
+
* `Some(...)` overrides that rule for this specific entity
|
|
12813
|
+
* at apply time. Reviewer overrides take precedence over
|
|
12814
|
+
* every policy rule and inherit the authority of the
|
|
12815
|
+
* [`Review::policy_id`] they name — the audit event's
|
|
12816
|
+
* attribution stamps that policy so the trail names the
|
|
12817
|
+
* authority under which the override fired.
|
|
12818
|
+
*/
|
|
12819
|
+
review?: components["schemas"]["Review"];
|
|
12226
12820
|
};
|
|
12227
12821
|
/**
|
|
12228
12822
|
* @description Located, typed piece of context a recognizer may treat as in-context
|
|
@@ -12271,31 +12865,6 @@ interface components {
|
|
|
12271
12865
|
*/
|
|
12272
12866
|
start: number;
|
|
12273
12867
|
};
|
|
12274
|
-
/**
|
|
12275
|
-
* @description Full audit trail of an [`Entity`]: every [`Event`] in its life, in
|
|
12276
|
-
* order.
|
|
12277
|
-
*
|
|
12278
|
-
* This is the model's answer to "full provenance": where Presidio keeps
|
|
12279
|
-
* a shallow, optional, per-stage explanation that is stripped by
|
|
12280
|
-
* default, a `Provenance` is always present and records the entity's
|
|
12281
|
-
* *entire* life as an ordered list of events: each recognizer that
|
|
12282
|
-
* found it, the deduplication that fused them, any confidence
|
|
12283
|
-
* calibration, and the redaction that hid it. Nothing is collapsed:
|
|
12284
|
-
* every recognizer keeps its own recognition event with its location
|
|
12285
|
-
* and score.
|
|
12286
|
-
*
|
|
12287
|
-
* The events form a confidence chain (each event's [`after`] is the
|
|
12288
|
-
* next's [`before`]) so the final confidence and its full history are
|
|
12289
|
-
* always recoverable.
|
|
12290
|
-
*
|
|
12291
|
-
* [`Entity`]: crate::entity::Entity
|
|
12292
|
-
* [`after`]: Event::after
|
|
12293
|
-
* [`before`]: Event::before
|
|
12294
|
-
*/
|
|
12295
|
-
TextProvenance: {
|
|
12296
|
-
/** @description Events, in the order they happened. */
|
|
12297
|
-
events: components["schemas"]["TextEvent"][];
|
|
12298
|
-
};
|
|
12299
12868
|
/** @description Operator spec a `redact` text rule carries. */
|
|
12300
12869
|
TextRedaction: {
|
|
12301
12870
|
/** @constant */
|
|
@@ -12489,6 +13058,21 @@ interface components {
|
|
|
12489
13058
|
*/
|
|
12490
13059
|
tokenId: string;
|
|
12491
13060
|
};
|
|
13061
|
+
/**
|
|
13062
|
+
* @description An account's current unread-notification count, broadcast on the account's
|
|
13063
|
+
* core-NATS unread subject.
|
|
13064
|
+
*
|
|
13065
|
+
* Fan-out to any watching SSE connections so a badge updates live; the stored
|
|
13066
|
+
* rows in Postgres remain the source of truth, so a missed broadcast is
|
|
13067
|
+
* recoverable by re-reading the count.
|
|
13068
|
+
*/
|
|
13069
|
+
UnreadCountEvent: {
|
|
13070
|
+
/**
|
|
13071
|
+
* Format: int64
|
|
13072
|
+
* @description The account's current number of unread notifications.
|
|
13073
|
+
*/
|
|
13074
|
+
unreadCount: number;
|
|
13075
|
+
};
|
|
12492
13076
|
/** @description Response type for unread notifications status. */
|
|
12493
13077
|
UnreadStatus: {
|
|
12494
13078
|
/**
|
|
@@ -12699,6 +13283,14 @@ interface components {
|
|
|
12699
13283
|
/** @description Handle of the workspace this webhook belongs to. */
|
|
12700
13284
|
workspaceSlug: components["schemas"]["Handle"];
|
|
12701
13285
|
};
|
|
13286
|
+
/** @description Params of a webhook activity (`webhook.*`). */
|
|
13287
|
+
WebhookActivityParams: {
|
|
13288
|
+
/**
|
|
13289
|
+
* Format: uuid
|
|
13290
|
+
* @description Id of the webhook.
|
|
13291
|
+
*/
|
|
13292
|
+
webhookId: string;
|
|
13293
|
+
};
|
|
12702
13294
|
/**
|
|
12703
13295
|
* @description Webhook creation response that includes the secret (visible only once).
|
|
12704
13296
|
*
|
|
@@ -12766,7 +13358,7 @@ interface components {
|
|
|
12766
13358
|
* This enumeration corresponds to the `WEBHOOK_EVENT` PostgreSQL enum and is used
|
|
12767
13359
|
* to configure which events a webhook should receive notifications for.
|
|
12768
13360
|
*/
|
|
12769
|
-
WebhookEvent: "file
|
|
13361
|
+
WebhookEvent: "file.created" | "file.updated" | "file.deleted" | "member.added" | "member.deleted" | "member.updated" | "connection.created" | "connection.updated" | "connection.deleted" | "connection.sync.started" | "connection.sync.completed" | "connection.sync.failed" | "pipeline.created" | "pipeline.updated" | "pipeline.deleted" | "pipeline.run.started" | "pipeline.run.analyzed" | "pipeline.run.completed" | "pipeline.run.failed" | "policy.created" | "policy.updated" | "policy.deleted";
|
|
12770
13362
|
/** @description Opaque whk identifier (whk_<uuid>). */
|
|
12771
13363
|
WebhookId: string;
|
|
12772
13364
|
/**
|
|
@@ -12840,6 +13432,11 @@ interface components {
|
|
|
12840
13432
|
*/
|
|
12841
13433
|
updatedAt: string;
|
|
12842
13434
|
};
|
|
13435
|
+
/** @description Params of a workspace-scoped activity (`workspace.*`). */
|
|
13436
|
+
WorkspaceActivityParams: {
|
|
13437
|
+
/** @description Slug of the workspace acted on. */
|
|
13438
|
+
workspaceSlug: components["schemas"]["Handle"];
|
|
13439
|
+
};
|
|
12843
13440
|
/** @description Path parameters for file operations within a workspace context. */
|
|
12844
13441
|
WorkspaceFilePathParams: {
|
|
12845
13442
|
/**
|
|
@@ -12957,8 +13554,17 @@ type AccountRef = Schemas$19["AccountRef"];
|
|
|
12957
13554
|
//#region src/datatypes/activity.d.ts
|
|
12958
13555
|
type Schemas$18 = components["schemas"];
|
|
12959
13556
|
type Activity = Schemas$18["Activity"];
|
|
12960
|
-
type ActivityType = Schemas$18["ActivityType"];
|
|
12961
13557
|
type ActivityPage = Schemas$18["ActivityPage"];
|
|
13558
|
+
type ActivityPayload = Schemas$18["ActivityPayload"];
|
|
13559
|
+
type WorkspaceActivityParams = Schemas$18["WorkspaceActivityParams"];
|
|
13560
|
+
type MemberActivityParams = Schemas$18["MemberActivityParams"];
|
|
13561
|
+
type InviteActivityParams = Schemas$18["InviteActivityParams"];
|
|
13562
|
+
type ConnectionActivityParams = Schemas$18["ConnectionActivityParams"];
|
|
13563
|
+
type PipelineActivityParams = Schemas$18["PipelineActivityParams"];
|
|
13564
|
+
type PipelineRunActivityParams = Schemas$18["PipelineRunActivityParams"];
|
|
13565
|
+
type PolicyActivityParams = Schemas$18["PolicyActivityParams"];
|
|
13566
|
+
type FileActivityParams = Schemas$18["FileActivityParams"];
|
|
13567
|
+
type WebhookActivityParams = Schemas$18["WebhookActivityParams"];
|
|
12962
13568
|
//#endregion
|
|
12963
13569
|
//#region src/datatypes/api-token.d.ts
|
|
12964
13570
|
type Schemas$17 = components["schemas"];
|
|
@@ -12984,6 +13590,8 @@ type RuleMatch = Schemas$16["RuleMatch"];
|
|
|
12984
13590
|
type ModelEvent = Schemas$16["ModelEvent"];
|
|
12985
13591
|
type PatternEvent = Schemas$16["PatternEvent"];
|
|
12986
13592
|
type OperatorId = Schemas$16["OperatorId"];
|
|
13593
|
+
type AuditHash = Schemas$16["AuditHash"];
|
|
13594
|
+
type Category = Schemas$16["Category"];
|
|
12987
13595
|
/** Half-open `[start, end)` index range. Generated name; a plain uint range. */
|
|
12988
13596
|
type RangeOfUint = Schemas$16["Range_of_uint"];
|
|
12989
13597
|
type BoundingBox = Schemas$16["BoundingBox"];
|
|
@@ -12993,35 +13601,35 @@ type Dimensions = Schemas$16["Dimensions"];
|
|
|
12993
13601
|
type TimeSpan = Schemas$16["TimeSpan"];
|
|
12994
13602
|
type TextEntity = Schemas$16["TextEntity"];
|
|
12995
13603
|
type TextEntityRecord = Schemas$16["TextEntityRecord"];
|
|
12996
|
-
type
|
|
12997
|
-
type
|
|
13604
|
+
type TextAuditEvent = Schemas$16["TextAuditEvent"];
|
|
13605
|
+
type TextAuditKind = Schemas$16["TextAuditKind"];
|
|
12998
13606
|
type TextHint = Schemas$16["TextHint"];
|
|
12999
13607
|
type TextLocation = Schemas$16["TextLocation"];
|
|
13000
|
-
type
|
|
13608
|
+
type TextAuditLog = Schemas$16["TextAuditLog"];
|
|
13001
13609
|
type TextData = Schemas$16["TextData"];
|
|
13002
13610
|
type ImageEntity = Schemas$16["ImageEntity"];
|
|
13003
13611
|
type ImageEntityRecord = Schemas$16["ImageEntityRecord"];
|
|
13004
|
-
type
|
|
13005
|
-
type
|
|
13612
|
+
type ImageAuditEvent = Schemas$16["ImageAuditEvent"];
|
|
13613
|
+
type ImageAuditKind = Schemas$16["ImageAuditKind"];
|
|
13006
13614
|
type ImageHint = Schemas$16["ImageHint"];
|
|
13007
13615
|
type ImageLocation = Schemas$16["ImageLocation"];
|
|
13008
|
-
type
|
|
13616
|
+
type ImageAuditLog = Schemas$16["ImageAuditLog"];
|
|
13009
13617
|
type ImageData = Schemas$16["ImageData"];
|
|
13010
13618
|
type AudioEntity = Schemas$16["AudioEntity"];
|
|
13011
13619
|
type AudioEntityRecord = Schemas$16["AudioEntityRecord"];
|
|
13012
|
-
type
|
|
13013
|
-
type
|
|
13620
|
+
type AudioAuditEvent = Schemas$16["AudioAuditEvent"];
|
|
13621
|
+
type AudioAuditKind = Schemas$16["AudioAuditKind"];
|
|
13014
13622
|
type AudioHint = Schemas$16["AudioHint"];
|
|
13015
13623
|
type AudioLocation = Schemas$16["AudioLocation"];
|
|
13016
|
-
type
|
|
13624
|
+
type AudioAuditLog = Schemas$16["AudioAuditLog"];
|
|
13017
13625
|
type AudioData = Schemas$16["AudioData"];
|
|
13018
13626
|
type TabularEntity = Schemas$16["TabularEntity"];
|
|
13019
13627
|
type TabularEntityRecord = Schemas$16["TabularEntityRecord"];
|
|
13020
|
-
type
|
|
13021
|
-
type
|
|
13628
|
+
type TabularAuditEvent = Schemas$16["TabularAuditEvent"];
|
|
13629
|
+
type TabularAuditKind = Schemas$16["TabularAuditKind"];
|
|
13022
13630
|
type TabularHint = Schemas$16["TabularHint"];
|
|
13023
13631
|
type TabularLocation = Schemas$16["TabularLocation"];
|
|
13024
|
-
type
|
|
13632
|
+
type TabularAuditLog = Schemas$16["TabularAuditLog"];
|
|
13025
13633
|
//#endregion
|
|
13026
13634
|
//#region src/datatypes/auth.d.ts
|
|
13027
13635
|
type Schemas$15 = components["schemas"];
|
|
@@ -13117,6 +13725,7 @@ type UpdateNotificationSettings = Schemas$7["UpdateNotificationSettings"];
|
|
|
13117
13725
|
type UnreadStatus = Schemas$7["UnreadStatus"];
|
|
13118
13726
|
type NotificationPage = Schemas$7["NotificationPage"];
|
|
13119
13727
|
type MarkedReadStatus = Schemas$7["MarkedReadStatus"];
|
|
13728
|
+
type UnreadCountEvent = Schemas$7["UnreadCountEvent"];
|
|
13120
13729
|
type NotificationPayload = Schemas$7["NotificationPayload"];
|
|
13121
13730
|
type MemberInvitedParams = Schemas$7["MemberInvitedParams"];
|
|
13122
13731
|
type MemberJoinedParams = Schemas$7["MemberJoinedParams"];
|
|
@@ -13154,8 +13763,12 @@ type CreatePolicy = Schemas$4["CreatePolicy"];
|
|
|
13154
13763
|
type UpdatePolicy = Schemas$4["UpdatePolicy"];
|
|
13155
13764
|
type PolicyRule = Schemas$4["PolicyRule"];
|
|
13156
13765
|
type PolicyTemplate = Schemas$4["PolicyTemplate"];
|
|
13766
|
+
type HipaaDeidentification = Schemas$4["HipaaDeidentification"];
|
|
13157
13767
|
type HipaaDeidMethod = Schemas$4["HipaaDeidMethod"];
|
|
13768
|
+
type HipaaAccountNumbers = Schemas$4["HipaaAccountNumbers"];
|
|
13769
|
+
type GdprArticle9 = Schemas$4["GdprArticle9"];
|
|
13158
13770
|
type GdprArticle9Treatment = Schemas$4["GdprArticle9Treatment"];
|
|
13771
|
+
type GdprSensitiveScope = Schemas$4["GdprSensitiveScope"];
|
|
13159
13772
|
type PciDssPart = Schemas$4["PciDssPart"];
|
|
13160
13773
|
type PciPanRender = Schemas$4["PciPanRender"];
|
|
13161
13774
|
type Predicate = Schemas$4["Predicate"];
|
|
@@ -13183,6 +13796,7 @@ type TerminalFallback = Schemas$4["TerminalFallback"];
|
|
|
13183
13796
|
//#region src/datatypes/run.d.ts
|
|
13184
13797
|
type Schemas$3 = components["schemas"];
|
|
13185
13798
|
type PipelineRun = Schemas$3["PipelineRun"];
|
|
13799
|
+
type RunMetadata = Schemas$3["RunMetadata"];
|
|
13186
13800
|
type CreatePipelineRun = Schemas$3["CreatePipelineRun"];
|
|
13187
13801
|
type PipelineRunStatus = Schemas$3["PipelineRunStatus"];
|
|
13188
13802
|
type PipelineRunPage = Schemas$3["PipelineRunPage"];
|
|
@@ -13226,5 +13840,5 @@ type Retention = Schemas["Retention"];
|
|
|
13226
13840
|
type RetentionSettings = Schemas["RetentionSettings"];
|
|
13227
13841
|
type RetentionOverride = Schemas["RetentionOverride"];
|
|
13228
13842
|
//#endregion
|
|
13229
|
-
export {
|
|
13230
|
-
//# sourceMappingURL=index-
|
|
13843
|
+
export { LabelLocale as $, AudioAuditEvent as $n, CreateApiToken as $r, GenerateInviteCode as $t, PipelineRun as A, ConnectionVerification as An, RangeOfUint as Ar, ConnectionSyncFailedParams as At, CreatePolicy as B, SyncMode as Bn, TextAuditEvent as Br, PipelineRunCompletedParams as Bt, LanguageProvenance as C, AnthropicCredentials as Cn, LeakProfile as Cr, PipelineStatus as Ct, ScopeParams as D, ConnectionPage as Dn, PatternEvent as Dr, UpdatePipeline as Dt, ScopeMetadata as E, ConnectionConfig as En, OperatorId as Er, PipelineTriggerType as Et, RunStatusEvent as F, OpenAiCredentials as Fn, TabularAuditLog as Fr, NotificationEvent as Ft, GdprSensitiveScope as G, UpdateConnection as Gn, TextEntityRecord as Gr, UnreadStatus as Gt, DateStyle as H, SyncScheduleInput as Hn, TextAuditLog as Hr, SystemAnnouncementParams as Ht, AudioRedaction as I, S3Credentials as In, TabularEntity as Ir, NotificationPage as It, HipaaDeidentification as J, RegisteredRecognizer as Jn, TimeSpan as Jr, Member as Jt, HipaaAccountNumbers as K, LabelCatalog as Kn, TextHint as Kr, UpdateNotificationSettings as Kt, ClampBucket as L, StorageConfig as Ln, TabularEntityRecord as Lr, NotificationPayload as Lt, PipelineRunStatus as M, CreateConnection as Mn, RuleMatch as Mr, MemberInvitedParams as Mt, PipelineRunsQuery as N, GcsCredentials as Nn, TabularAuditEvent as Nr, MemberJoinedParams as Nt, Audit as O, ConnectionSync as On, Point as Or, CursorPagination as Ot, RunMetadata as P, LlmConfig as Pn, TabularAuditKind as Pr, Notification as Pt, LabelGroup as Q, Attribution as Qn, ApiTokenWithJWT as Qr, CreateInvite as Qt, Color as R, SyncConnection as Rn, TabularHint as Rr, NotificationSettings as Rt, Language as S, ValidationErrorDetail as Sn, ImageLocation as Sr, PipelineFilter as St, Languages as T, Connection as Tn, OcrMode as Tr, PipelineSummaryPage as Tt, GdprArticle9 as U, SyncStatus as Un, TextData as Ur, SystemReportParams as Ut, DateGranularity as V, SyncSchedule as Vn, TextAuditKind as Vr, PipelineRunFailedParams as Vt, GdprArticle9Treatment as W, SyncTriggerType as Wn, TextEntity as Wr, UnreadCountEvent as Wt, Label as X, Login as Xn, ApiTokenPage as Xr, MemberSortField as Xt, ImageRedaction as Y, AuthToken as Yn, ApiToken as Yr, MemberPage as Yt, LabelEntry as Z, Signup as Zn, ApiTokenType as Zr, UpdateMember as Zt, WebhookPage as _, UpdateAccount as _i, FormatToken as _n, ImageAuditLog as _r, UpdatePolicy as _t, RetentionSettings as a, ConnectionActivityParams as ai, InviteSent as an, AudioHint as ar, PciPanRender as at, Confidence as b, UpdateFile as bn, ImageEntityRecord as br, Pipeline as bt, WorkspacePage as c, MemberActivityParams as ci, ListInvites as cn, AuditHash as cr, PolicyRule as ct, CreateWebhook as d, PolicyActivityParams as di, ComponentHealth as dn, Dimensions as dr, PolicyTemplate as dt, TokenExpiration as ei, Invite as en, AudioAuditKind as er, Labels as et, TestWebhook as f, WebhookActivityParams as fi, Health as fn, Dpi as fr, Predicate as ft, WebhookEvent as g, PublicAccount as gi, FilePage as gn, ImageAuditKind as gr, TextRedaction as gt, WebhookCreated as h, AccountRef as hi, FileKind as hn, ImageAuditEvent as hr, TerminalFallback as ht, RetentionOverride as i, ActivityPayload as ii, InvitePreview as in, AudioEntityRecord as ir, PciDssPart as it, PipelineRunPage as j, ConnectionsQuery as jn, Review as jr, MarkedReadStatus as jt, CreatePipelineRun as k, ConnectionSyncPage as kn, Polygon as kr, ConnectionSyncCompletedParams as kt, WorkspaceRole as l, PipelineActivityParams as li, ReplyInvite as ln, BoundingBox as lr, PolicySummary as lt, Webhook as m, Account as mi, File as mn, EntityGroup as mr, TabularRedaction as mt, OcrPolicy as n, Activity as ni, InviteExpiration as nn, AudioData as nr, LocalizedText as nt, UpdateWorkspace as o, FileActivityParams as oi, InviteSortField as on, AudioLocation as or, Policy as ot, UpdateWebhook as p, WorkspaceActivityParams as pi, HealthStatus as pn, EntityCoRef as pr, Sha2Algorithm as pt, HipaaDeidMethod as q, RecognizerCatalog as qn, TextLocation as qr, ListMembers as qt, Retention as r, ActivityPage as ri, InvitePage as rn, AudioEntity as rr, ModalityRedactions as rt, Workspace as s, InviteActivityParams as si, InviteStatus as sn, AuditContext as sr, PolicyDefinition as st, CreateWorkspace as t, UpdateApiToken as ti, InviteCode as tn, AudioAuditLog as tr, LanguageTag as tt, WorkspaceSettings as u, PipelineRunActivityParams as ui, SortOrder as un, Category as ur, PolicySummaryPage as ut, WebhookResult as v, paths as vi, ListFiles as vn, ImageData as vr, Waveform as vt, LanguageSpan as w, AzureCredentials as wn, ModelEvent as wr, PipelineSummary as wt, CountryCode as x, ErrorResponse as xn, ImageHint as xr, PipelineDefinition as xt, WebhookStatus as y, ModalityToken as yn, ImageEntity as yr, CreatePipeline as yt, ConfidenceThreshold as z, SyncDeletionPolicy as zn, TabularLocation as zr, PipelineRunAnalyzedParams as zt };
|
|
13844
|
+
//# sourceMappingURL=index-Zd5G8h44.d.ts.map
|