@1claw/openapi-spec 0.16.1 → 0.17.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/README.md +3 -2
- package/openapi.json +536 -2
- package/openapi.yaml +381 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,10 +40,11 @@ openapi-generator generate \
|
|
|
40
40
|
import spec from "@1claw/openapi-spec/openapi.json";
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
## What's in the spec (v0.
|
|
43
|
+
## What's in the spec (v0.17.x)
|
|
44
44
|
|
|
45
|
+
- **Auth — agent JWT** — `POST /v1/auth/agent-token` documents optional JWT claim **`shroud_config`** when the agent has Shroud enabled (mirrors DB; consumed by Shroud PolicyEngine on LLM requests). Re-exchange after changing agent Shroud settings.
|
|
45
46
|
- **Auth — password reset** — `POST /v1/auth/forgot-password`, `POST /v1/auth/reset-password` (public; anti-enumeration on forgot)
|
|
46
|
-
- **Billing — LLM token billing** — `GET /v1/billing/llm-token-billing`, `POST .../subscribe`, `POST .../disable` (Stripe AI Gateway add-on; optional org feature)
|
|
47
|
+
- **Billing — LLM token billing** — `GET /v1/billing/llm-token-billing` (`LlmTokenBillingStatus`: `enabled`, `subscription_status`, optional `credit_balance`, optional `billing_cycle_usage` with `metered_lines[]`), `POST .../subscribe`, `POST .../disable` (Stripe AI Gateway add-on; optional org feature)
|
|
47
48
|
- **Treasury** — Safe multisig treasuries: `POST/GET /v1/treasury`, `GET/PATCH/DELETE /v1/treasury/{id}`, signers, agent access requests (`requests[]` on list)
|
|
48
49
|
- **Vaults** — CRUD, CMEK enable/disable, key rotation with job tracking
|
|
49
50
|
- **Secrets** — CRUD, versioning, CMEK-encrypted flag
|
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "1Claw API",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.7.0",
|
|
6
6
|
"description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
7
7
|
"contact": {
|
|
8
8
|
"email": "ops@1claw.xyz"
|
|
@@ -153,6 +153,7 @@
|
|
|
153
153
|
"Authentication"
|
|
154
154
|
],
|
|
155
155
|
"summary": "Exchange agent credentials for JWT",
|
|
156
|
+
"description": "Returns a short-lived EdDSA-signed JWT (`access_token`). Standard claims include `sub`\n(`agent:<uuid>`), `org`, `scopes`, `vault_ids`, optional `intents_api_enabled`, optional\n`shroud_enabled`, optional `llm_token_billing` / `stripe_customer_id` when org LLM billing is on.\n\nWhen **`shroud_enabled`** is true, the JWT payload may include **`shroud_config`**: a JSON object\nmirroring the agent row in Vault (same shape as `ShroudConfig` on `GET /v1/agents/{id}`).\n**Shroud** (TEE proxy) decodes this on each LLM request and runs **PolicyEngine** after the\nglobal inspection pipeline so per-agent limits and threat **block** actions apply without a\nseparate policy fetch. Re-exchange the agent token after changing `shroud_config` so the JWT\nis fresh.\n\nUser JWTs from password, API key, or device flow do **not** include `shroud_config`.\n",
|
|
156
157
|
"operationId": "agentToken",
|
|
157
158
|
"security": [],
|
|
158
159
|
"requestBody": {
|
|
@@ -2893,7 +2894,7 @@
|
|
|
2893
2894
|
],
|
|
2894
2895
|
"summary": "Get LLM token billing status",
|
|
2895
2896
|
"operationId": "getLlmTokenBilling",
|
|
2896
|
-
"description": "Returns whether LLM token billing is enabled
|
|
2897
|
+
"description": "Returns whether LLM token billing is enabled, optional Stripe billing credit balance (metered scope), and estimated cycle usage from the upcoming invoice—including per-line metered rows when Stripe returns them (amounts; quantities such as tokens when present).\n",
|
|
2897
2898
|
"responses": {
|
|
2898
2899
|
"200": {
|
|
2899
2900
|
"description": "LLM token billing status",
|
|
@@ -4026,6 +4027,112 @@
|
|
|
4026
4027
|
}
|
|
4027
4028
|
}
|
|
4028
4029
|
}
|
|
4030
|
+
},
|
|
4031
|
+
"/v1/shroud/activity": {
|
|
4032
|
+
"get": {
|
|
4033
|
+
"tags": [
|
|
4034
|
+
"Shroud"
|
|
4035
|
+
],
|
|
4036
|
+
"summary": "List Shroud activity events",
|
|
4037
|
+
"description": "Returns recent Shroud proxy activity for the organization (LLM requests, inspections, policy actions).",
|
|
4038
|
+
"security": [
|
|
4039
|
+
{
|
|
4040
|
+
"BearerAuth": []
|
|
4041
|
+
}
|
|
4042
|
+
],
|
|
4043
|
+
"parameters": [
|
|
4044
|
+
{
|
|
4045
|
+
"in": "query",
|
|
4046
|
+
"name": "agent_id",
|
|
4047
|
+
"schema": {
|
|
4048
|
+
"type": "string"
|
|
4049
|
+
},
|
|
4050
|
+
"description": "Filter by agent ID"
|
|
4051
|
+
},
|
|
4052
|
+
{
|
|
4053
|
+
"in": "query",
|
|
4054
|
+
"name": "action",
|
|
4055
|
+
"schema": {
|
|
4056
|
+
"type": "string"
|
|
4057
|
+
},
|
|
4058
|
+
"description": "Filter by action (allowed, blocked, warned)"
|
|
4059
|
+
},
|
|
4060
|
+
{
|
|
4061
|
+
"in": "query",
|
|
4062
|
+
"name": "limit",
|
|
4063
|
+
"schema": {
|
|
4064
|
+
"type": "integer",
|
|
4065
|
+
"default": 50
|
|
4066
|
+
},
|
|
4067
|
+
"description": "Maximum events to return"
|
|
4068
|
+
},
|
|
4069
|
+
{
|
|
4070
|
+
"in": "query",
|
|
4071
|
+
"name": "offset",
|
|
4072
|
+
"schema": {
|
|
4073
|
+
"type": "integer",
|
|
4074
|
+
"default": 0
|
|
4075
|
+
},
|
|
4076
|
+
"description": "Pagination offset"
|
|
4077
|
+
}
|
|
4078
|
+
],
|
|
4079
|
+
"responses": {
|
|
4080
|
+
"200": {
|
|
4081
|
+
"description": "Activity events",
|
|
4082
|
+
"content": {
|
|
4083
|
+
"application/json": {
|
|
4084
|
+
"schema": {
|
|
4085
|
+
"type": "object",
|
|
4086
|
+
"properties": {
|
|
4087
|
+
"events": {
|
|
4088
|
+
"type": "array",
|
|
4089
|
+
"items": {
|
|
4090
|
+
"$ref": "#/components/schemas/ShroudActivityEvent"
|
|
4091
|
+
}
|
|
4092
|
+
},
|
|
4093
|
+
"total": {
|
|
4094
|
+
"type": "integer"
|
|
4095
|
+
}
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
},
|
|
4101
|
+
"401": {
|
|
4102
|
+
"description": "Unauthorized"
|
|
4103
|
+
}
|
|
4104
|
+
}
|
|
4105
|
+
},
|
|
4106
|
+
"post": {
|
|
4107
|
+
"tags": [
|
|
4108
|
+
"Shroud"
|
|
4109
|
+
],
|
|
4110
|
+
"summary": "Ingest Shroud activity event (internal)",
|
|
4111
|
+
"description": "Called by the Shroud proxy to record activity events. Not intended for external use.",
|
|
4112
|
+
"security": [
|
|
4113
|
+
{
|
|
4114
|
+
"BearerAuth": []
|
|
4115
|
+
}
|
|
4116
|
+
],
|
|
4117
|
+
"requestBody": {
|
|
4118
|
+
"required": true,
|
|
4119
|
+
"content": {
|
|
4120
|
+
"application/json": {
|
|
4121
|
+
"schema": {
|
|
4122
|
+
"$ref": "#/components/schemas/IngestShroudActivityRequest"
|
|
4123
|
+
}
|
|
4124
|
+
}
|
|
4125
|
+
}
|
|
4126
|
+
},
|
|
4127
|
+
"responses": {
|
|
4128
|
+
"201": {
|
|
4129
|
+
"description": "Event recorded"
|
|
4130
|
+
},
|
|
4131
|
+
"401": {
|
|
4132
|
+
"description": "Unauthorized"
|
|
4133
|
+
}
|
|
4134
|
+
}
|
|
4135
|
+
}
|
|
4029
4136
|
}
|
|
4030
4137
|
},
|
|
4031
4138
|
"components": {
|
|
@@ -5614,6 +5721,27 @@
|
|
|
5614
5721
|
"type": "boolean",
|
|
5615
5722
|
"default": true,
|
|
5616
5723
|
"description": "Whether to log all detected threats to audit (even when action is allow/warn)"
|
|
5724
|
+
},
|
|
5725
|
+
"tool_call_inspection": {
|
|
5726
|
+
"$ref": "#/components/schemas/ToolCallPolicy"
|
|
5727
|
+
},
|
|
5728
|
+
"output_policy": {
|
|
5729
|
+
"$ref": "#/components/schemas/OutputPolicy"
|
|
5730
|
+
},
|
|
5731
|
+
"secret_injection_detection": {
|
|
5732
|
+
"$ref": "#/components/schemas/SecretInjectionConfig"
|
|
5733
|
+
},
|
|
5734
|
+
"advanced_redaction": {
|
|
5735
|
+
"$ref": "#/components/schemas/AdvancedRedactionConfig"
|
|
5736
|
+
},
|
|
5737
|
+
"semantic_policy": {
|
|
5738
|
+
"$ref": "#/components/schemas/SemanticPolicy"
|
|
5739
|
+
},
|
|
5740
|
+
"flagged_request_retention_days": {
|
|
5741
|
+
"type": "integer",
|
|
5742
|
+
"minimum": 0,
|
|
5743
|
+
"maximum": 365,
|
|
5744
|
+
"description": "Number of days to retain flagged request bodies for replay/investigation"
|
|
5617
5745
|
}
|
|
5618
5746
|
}
|
|
5619
5747
|
},
|
|
@@ -5820,6 +5948,221 @@
|
|
|
5820
5948
|
}
|
|
5821
5949
|
}
|
|
5822
5950
|
},
|
|
5951
|
+
"ToolCallPolicy": {
|
|
5952
|
+
"type": "object",
|
|
5953
|
+
"description": "Tool/function call inspection settings",
|
|
5954
|
+
"properties": {
|
|
5955
|
+
"enabled": {
|
|
5956
|
+
"type": "boolean",
|
|
5957
|
+
"default": false,
|
|
5958
|
+
"description": "Enable tool call inspection"
|
|
5959
|
+
},
|
|
5960
|
+
"allowed_tool_names": {
|
|
5961
|
+
"type": "array",
|
|
5962
|
+
"items": {
|
|
5963
|
+
"type": "string"
|
|
5964
|
+
},
|
|
5965
|
+
"description": "Allowed tool/function names (empty = all allowed)"
|
|
5966
|
+
},
|
|
5967
|
+
"denied_tool_names": {
|
|
5968
|
+
"type": "array",
|
|
5969
|
+
"items": {
|
|
5970
|
+
"type": "string"
|
|
5971
|
+
},
|
|
5972
|
+
"description": "Denied tool/function names"
|
|
5973
|
+
},
|
|
5974
|
+
"scan_arguments": {
|
|
5975
|
+
"type": "boolean",
|
|
5976
|
+
"default": true,
|
|
5977
|
+
"description": "Scan tool call arguments for credential exfiltration"
|
|
5978
|
+
},
|
|
5979
|
+
"block_credential_exfil": {
|
|
5980
|
+
"type": "boolean",
|
|
5981
|
+
"default": true,
|
|
5982
|
+
"description": "Block tool calls that appear to exfiltrate credentials"
|
|
5983
|
+
},
|
|
5984
|
+
"action": {
|
|
5985
|
+
"type": "string",
|
|
5986
|
+
"enum": [
|
|
5987
|
+
"block",
|
|
5988
|
+
"sanitize",
|
|
5989
|
+
"warn",
|
|
5990
|
+
"log"
|
|
5991
|
+
],
|
|
5992
|
+
"default": "block",
|
|
5993
|
+
"description": "Action when a tool call violation is detected"
|
|
5994
|
+
}
|
|
5995
|
+
}
|
|
5996
|
+
},
|
|
5997
|
+
"OutputPolicy": {
|
|
5998
|
+
"type": "object",
|
|
5999
|
+
"description": "Output content policy settings for LLM responses",
|
|
6000
|
+
"properties": {
|
|
6001
|
+
"enabled": {
|
|
6002
|
+
"type": "boolean",
|
|
6003
|
+
"default": false,
|
|
6004
|
+
"description": "Enable output content policies"
|
|
6005
|
+
},
|
|
6006
|
+
"blocked_patterns": {
|
|
6007
|
+
"type": "array",
|
|
6008
|
+
"items": {
|
|
6009
|
+
"type": "string"
|
|
6010
|
+
},
|
|
6011
|
+
"description": "Custom regex patterns to block in responses"
|
|
6012
|
+
},
|
|
6013
|
+
"blocked_entities": {
|
|
6014
|
+
"type": "array",
|
|
6015
|
+
"items": {
|
|
6016
|
+
"type": "string"
|
|
6017
|
+
},
|
|
6018
|
+
"description": "Named entities to block (e.g., competitor names)"
|
|
6019
|
+
},
|
|
6020
|
+
"block_harmful_content": {
|
|
6021
|
+
"type": "boolean",
|
|
6022
|
+
"default": false,
|
|
6023
|
+
"description": "Block responses containing harmful content categories"
|
|
6024
|
+
},
|
|
6025
|
+
"harmful_categories": {
|
|
6026
|
+
"type": "array",
|
|
6027
|
+
"items": {
|
|
6028
|
+
"type": "string",
|
|
6029
|
+
"enum": [
|
|
6030
|
+
"violence",
|
|
6031
|
+
"self_harm",
|
|
6032
|
+
"illegal",
|
|
6033
|
+
"hate",
|
|
6034
|
+
"sexual",
|
|
6035
|
+
"malware"
|
|
6036
|
+
]
|
|
6037
|
+
},
|
|
6038
|
+
"description": "Harm categories to block"
|
|
6039
|
+
},
|
|
6040
|
+
"action": {
|
|
6041
|
+
"type": "string",
|
|
6042
|
+
"enum": [
|
|
6043
|
+
"block",
|
|
6044
|
+
"sanitize",
|
|
6045
|
+
"warn",
|
|
6046
|
+
"log"
|
|
6047
|
+
],
|
|
6048
|
+
"default": "warn",
|
|
6049
|
+
"description": "Action when output policy is violated"
|
|
6050
|
+
}
|
|
6051
|
+
}
|
|
6052
|
+
},
|
|
6053
|
+
"SecretInjectionConfig": {
|
|
6054
|
+
"type": "object",
|
|
6055
|
+
"description": "Detects credentials injected into prompts that are not from the vault",
|
|
6056
|
+
"properties": {
|
|
6057
|
+
"enabled": {
|
|
6058
|
+
"type": "boolean",
|
|
6059
|
+
"default": false,
|
|
6060
|
+
"description": "Enable secret injection detection"
|
|
6061
|
+
},
|
|
6062
|
+
"action": {
|
|
6063
|
+
"type": "string",
|
|
6064
|
+
"enum": [
|
|
6065
|
+
"block",
|
|
6066
|
+
"sanitize",
|
|
6067
|
+
"warn",
|
|
6068
|
+
"log"
|
|
6069
|
+
],
|
|
6070
|
+
"default": "block",
|
|
6071
|
+
"description": "Action when injected credentials are detected"
|
|
6072
|
+
},
|
|
6073
|
+
"sensitivity": {
|
|
6074
|
+
"type": "string",
|
|
6075
|
+
"enum": [
|
|
6076
|
+
"low",
|
|
6077
|
+
"medium",
|
|
6078
|
+
"high"
|
|
6079
|
+
],
|
|
6080
|
+
"default": "medium",
|
|
6081
|
+
"description": "Detection sensitivity level"
|
|
6082
|
+
}
|
|
6083
|
+
}
|
|
6084
|
+
},
|
|
6085
|
+
"AdvancedRedactionConfig": {
|
|
6086
|
+
"type": "object",
|
|
6087
|
+
"description": "Advanced secret redaction settings (base64-encoded, split, prefix leaks)",
|
|
6088
|
+
"properties": {
|
|
6089
|
+
"enabled": {
|
|
6090
|
+
"type": "boolean",
|
|
6091
|
+
"default": false,
|
|
6092
|
+
"description": "Enable advanced redaction checks"
|
|
6093
|
+
},
|
|
6094
|
+
"detect_base64_encoded": {
|
|
6095
|
+
"type": "boolean",
|
|
6096
|
+
"default": false,
|
|
6097
|
+
"description": "Detect base64-encoded vault secrets"
|
|
6098
|
+
},
|
|
6099
|
+
"detect_split_secrets": {
|
|
6100
|
+
"type": "boolean",
|
|
6101
|
+
"default": false,
|
|
6102
|
+
"description": "Detect secrets split across tokens or messages"
|
|
6103
|
+
},
|
|
6104
|
+
"detect_prefix_leak": {
|
|
6105
|
+
"type": "boolean",
|
|
6106
|
+
"default": false,
|
|
6107
|
+
"description": "Detect partial/prefix leaks of vault secrets"
|
|
6108
|
+
},
|
|
6109
|
+
"min_secret_length": {
|
|
6110
|
+
"type": "integer",
|
|
6111
|
+
"default": 16,
|
|
6112
|
+
"description": "Minimum secret length to consider for advanced matching"
|
|
6113
|
+
}
|
|
6114
|
+
}
|
|
6115
|
+
},
|
|
6116
|
+
"SemanticPolicy": {
|
|
6117
|
+
"type": "object",
|
|
6118
|
+
"description": "Semantic/intent-level policy enforcement",
|
|
6119
|
+
"properties": {
|
|
6120
|
+
"enabled": {
|
|
6121
|
+
"type": "boolean",
|
|
6122
|
+
"default": false,
|
|
6123
|
+
"description": "Enable semantic policy enforcement"
|
|
6124
|
+
},
|
|
6125
|
+
"allowed_topics": {
|
|
6126
|
+
"type": "array",
|
|
6127
|
+
"items": {
|
|
6128
|
+
"type": "string"
|
|
6129
|
+
},
|
|
6130
|
+
"description": "Topics the agent is allowed to discuss (empty = all)"
|
|
6131
|
+
},
|
|
6132
|
+
"denied_topics": {
|
|
6133
|
+
"type": "array",
|
|
6134
|
+
"items": {
|
|
6135
|
+
"type": "string"
|
|
6136
|
+
},
|
|
6137
|
+
"description": "Topics to block"
|
|
6138
|
+
},
|
|
6139
|
+
"allowed_tasks": {
|
|
6140
|
+
"type": "array",
|
|
6141
|
+
"items": {
|
|
6142
|
+
"type": "string"
|
|
6143
|
+
},
|
|
6144
|
+
"description": "Tasks the agent is allowed to perform (empty = all)"
|
|
6145
|
+
},
|
|
6146
|
+
"denied_tasks": {
|
|
6147
|
+
"type": "array",
|
|
6148
|
+
"items": {
|
|
6149
|
+
"type": "string"
|
|
6150
|
+
},
|
|
6151
|
+
"description": "Tasks to block (e.g., code_generation, data_export)"
|
|
6152
|
+
},
|
|
6153
|
+
"action": {
|
|
6154
|
+
"type": "string",
|
|
6155
|
+
"enum": [
|
|
6156
|
+
"block",
|
|
6157
|
+
"sanitize",
|
|
6158
|
+
"warn",
|
|
6159
|
+
"log"
|
|
6160
|
+
],
|
|
6161
|
+
"default": "warn",
|
|
6162
|
+
"description": "Action when semantic policy is violated"
|
|
6163
|
+
}
|
|
6164
|
+
}
|
|
6165
|
+
},
|
|
5823
6166
|
"AgentCreatedResponse": {
|
|
5824
6167
|
"type": "object",
|
|
5825
6168
|
"required": [
|
|
@@ -6777,8 +7120,83 @@
|
|
|
6777
7120
|
}
|
|
6778
7121
|
}
|
|
6779
7122
|
},
|
|
7123
|
+
"LlmMeteredInvoiceLine": {
|
|
7124
|
+
"type": "object",
|
|
7125
|
+
"description": "Metered line from Stripe upcoming invoice (usage detail when available).",
|
|
7126
|
+
"properties": {
|
|
7127
|
+
"description": {
|
|
7128
|
+
"type": "string",
|
|
7129
|
+
"nullable": true
|
|
7130
|
+
},
|
|
7131
|
+
"amount_cents": {
|
|
7132
|
+
"type": "integer",
|
|
7133
|
+
"format": "int64"
|
|
7134
|
+
},
|
|
7135
|
+
"quantity": {
|
|
7136
|
+
"type": "number",
|
|
7137
|
+
"nullable": true,
|
|
7138
|
+
"description": "Billed usage units when Stripe returns quantity (e.g. tokens)."
|
|
7139
|
+
},
|
|
7140
|
+
"price_nickname": {
|
|
7141
|
+
"type": "string",
|
|
7142
|
+
"nullable": true
|
|
7143
|
+
}
|
|
7144
|
+
}
|
|
7145
|
+
},
|
|
7146
|
+
"LlmBillingCycleUsage": {
|
|
7147
|
+
"type": "object",
|
|
7148
|
+
"description": "Accrued LLM charges for the current Stripe subscription period (upcoming invoice).",
|
|
7149
|
+
"properties": {
|
|
7150
|
+
"period_start": {
|
|
7151
|
+
"type": "string",
|
|
7152
|
+
"format": "date-time",
|
|
7153
|
+
"nullable": true
|
|
7154
|
+
},
|
|
7155
|
+
"period_end": {
|
|
7156
|
+
"type": "string",
|
|
7157
|
+
"format": "date-time",
|
|
7158
|
+
"nullable": true
|
|
7159
|
+
},
|
|
7160
|
+
"accrued_usage_cents": {
|
|
7161
|
+
"type": "integer",
|
|
7162
|
+
"format": "int64"
|
|
7163
|
+
},
|
|
7164
|
+
"currency": {
|
|
7165
|
+
"type": "string"
|
|
7166
|
+
},
|
|
7167
|
+
"metered_lines": {
|
|
7168
|
+
"type": "array",
|
|
7169
|
+
"items": {
|
|
7170
|
+
"$ref": "#/components/schemas/LlmMeteredInvoiceLine"
|
|
7171
|
+
}
|
|
7172
|
+
}
|
|
7173
|
+
}
|
|
7174
|
+
},
|
|
7175
|
+
"LlmCreditBalance": {
|
|
7176
|
+
"type": "object",
|
|
7177
|
+
"properties": {
|
|
7178
|
+
"available_cents": {
|
|
7179
|
+
"type": "integer",
|
|
7180
|
+
"format": "int64"
|
|
7181
|
+
},
|
|
7182
|
+
"ledger_cents": {
|
|
7183
|
+
"type": "integer",
|
|
7184
|
+
"format": "int64"
|
|
7185
|
+
},
|
|
7186
|
+
"used_cents": {
|
|
7187
|
+
"type": "integer",
|
|
7188
|
+
"format": "int64"
|
|
7189
|
+
},
|
|
7190
|
+
"currency": {
|
|
7191
|
+
"type": "string"
|
|
7192
|
+
}
|
|
7193
|
+
}
|
|
7194
|
+
},
|
|
6780
7195
|
"LlmTokenBillingStatus": {
|
|
6781
7196
|
"type": "object",
|
|
7197
|
+
"required": [
|
|
7198
|
+
"enabled"
|
|
7199
|
+
],
|
|
6782
7200
|
"properties": {
|
|
6783
7201
|
"enabled": {
|
|
6784
7202
|
"type": "boolean"
|
|
@@ -6789,6 +7207,12 @@
|
|
|
6789
7207
|
"active",
|
|
6790
7208
|
"inactive"
|
|
6791
7209
|
]
|
|
7210
|
+
},
|
|
7211
|
+
"credit_balance": {
|
|
7212
|
+
"$ref": "#/components/schemas/LlmCreditBalance"
|
|
7213
|
+
},
|
|
7214
|
+
"billing_cycle_usage": {
|
|
7215
|
+
"$ref": "#/components/schemas/LlmBillingCycleUsage"
|
|
6792
7216
|
}
|
|
6793
7217
|
}
|
|
6794
7218
|
},
|
|
@@ -7400,6 +7824,116 @@
|
|
|
7400
7824
|
}
|
|
7401
7825
|
}
|
|
7402
7826
|
},
|
|
7827
|
+
"ShroudActivityEvent": {
|
|
7828
|
+
"type": "object",
|
|
7829
|
+
"properties": {
|
|
7830
|
+
"id": {
|
|
7831
|
+
"type": "string",
|
|
7832
|
+
"format": "uuid"
|
|
7833
|
+
},
|
|
7834
|
+
"org_id": {
|
|
7835
|
+
"type": "string",
|
|
7836
|
+
"format": "uuid"
|
|
7837
|
+
},
|
|
7838
|
+
"agent_id": {
|
|
7839
|
+
"type": "string"
|
|
7840
|
+
},
|
|
7841
|
+
"provider": {
|
|
7842
|
+
"type": "string"
|
|
7843
|
+
},
|
|
7844
|
+
"model": {
|
|
7845
|
+
"type": "string"
|
|
7846
|
+
},
|
|
7847
|
+
"action": {
|
|
7848
|
+
"type": "string",
|
|
7849
|
+
"description": "Action taken (allowed, blocked, warned)"
|
|
7850
|
+
},
|
|
7851
|
+
"request_tokens": {
|
|
7852
|
+
"type": "integer"
|
|
7853
|
+
},
|
|
7854
|
+
"response_tokens": {
|
|
7855
|
+
"type": "integer"
|
|
7856
|
+
},
|
|
7857
|
+
"latency_ms": {
|
|
7858
|
+
"type": "integer"
|
|
7859
|
+
},
|
|
7860
|
+
"had_secrets_redacted": {
|
|
7861
|
+
"type": "boolean"
|
|
7862
|
+
},
|
|
7863
|
+
"had_pii_detected": {
|
|
7864
|
+
"type": "boolean"
|
|
7865
|
+
},
|
|
7866
|
+
"injection_score": {
|
|
7867
|
+
"type": "number"
|
|
7868
|
+
},
|
|
7869
|
+
"policy_violations": {
|
|
7870
|
+
"type": "array",
|
|
7871
|
+
"items": {
|
|
7872
|
+
"type": "string"
|
|
7873
|
+
}
|
|
7874
|
+
},
|
|
7875
|
+
"metadata": {
|
|
7876
|
+
"type": "object"
|
|
7877
|
+
},
|
|
7878
|
+
"timestamp": {
|
|
7879
|
+
"type": "string",
|
|
7880
|
+
"format": "date-time"
|
|
7881
|
+
}
|
|
7882
|
+
}
|
|
7883
|
+
},
|
|
7884
|
+
"IngestShroudActivityRequest": {
|
|
7885
|
+
"type": "object",
|
|
7886
|
+
"required": [
|
|
7887
|
+
"agent_id",
|
|
7888
|
+
"action"
|
|
7889
|
+
],
|
|
7890
|
+
"properties": {
|
|
7891
|
+
"agent_id": {
|
|
7892
|
+
"type": "string"
|
|
7893
|
+
},
|
|
7894
|
+
"provider": {
|
|
7895
|
+
"type": "string"
|
|
7896
|
+
},
|
|
7897
|
+
"model": {
|
|
7898
|
+
"type": "string"
|
|
7899
|
+
},
|
|
7900
|
+
"action": {
|
|
7901
|
+
"type": "string"
|
|
7902
|
+
},
|
|
7903
|
+
"request_tokens": {
|
|
7904
|
+
"type": "integer",
|
|
7905
|
+
"default": 0
|
|
7906
|
+
},
|
|
7907
|
+
"response_tokens": {
|
|
7908
|
+
"type": "integer",
|
|
7909
|
+
"default": 0
|
|
7910
|
+
},
|
|
7911
|
+
"latency_ms": {
|
|
7912
|
+
"type": "integer"
|
|
7913
|
+
},
|
|
7914
|
+
"had_secrets_redacted": {
|
|
7915
|
+
"type": "boolean",
|
|
7916
|
+
"default": false
|
|
7917
|
+
},
|
|
7918
|
+
"had_pii_detected": {
|
|
7919
|
+
"type": "boolean",
|
|
7920
|
+
"default": false
|
|
7921
|
+
},
|
|
7922
|
+
"injection_score": {
|
|
7923
|
+
"type": "number",
|
|
7924
|
+
"default": 0
|
|
7925
|
+
},
|
|
7926
|
+
"policy_violations": {
|
|
7927
|
+
"type": "array",
|
|
7928
|
+
"items": {
|
|
7929
|
+
"type": "string"
|
|
7930
|
+
}
|
|
7931
|
+
},
|
|
7932
|
+
"metadata": {
|
|
7933
|
+
"type": "object"
|
|
7934
|
+
}
|
|
7935
|
+
}
|
|
7936
|
+
},
|
|
7403
7937
|
"HealthResponse": {
|
|
7404
7938
|
"type": "object",
|
|
7405
7939
|
"properties": {
|
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: 2.
|
|
5
|
+
version: 2.7.0
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -105,6 +105,19 @@ paths:
|
|
|
105
105
|
post:
|
|
106
106
|
tags: [Authentication]
|
|
107
107
|
summary: Exchange agent credentials for JWT
|
|
108
|
+
description: |
|
|
109
|
+
Returns a short-lived EdDSA-signed JWT (`access_token`). Standard claims include `sub`
|
|
110
|
+
(`agent:<uuid>`), `org`, `scopes`, `vault_ids`, optional `intents_api_enabled`, optional
|
|
111
|
+
`shroud_enabled`, optional `llm_token_billing` / `stripe_customer_id` when org LLM billing is on.
|
|
112
|
+
|
|
113
|
+
When **`shroud_enabled`** is true, the JWT payload may include **`shroud_config`**: a JSON object
|
|
114
|
+
mirroring the agent row in Vault (same shape as `ShroudConfig` on `GET /v1/agents/{id}`).
|
|
115
|
+
**Shroud** (TEE proxy) decodes this on each LLM request and runs **PolicyEngine** after the
|
|
116
|
+
global inspection pipeline so per-agent limits and threat **block** actions apply without a
|
|
117
|
+
separate policy fetch. Re-exchange the agent token after changing `shroud_config` so the JWT
|
|
118
|
+
is fresh.
|
|
119
|
+
|
|
120
|
+
User JWTs from password, API key, or device flow do **not** include `shroud_config`.
|
|
108
121
|
operationId: agentToken
|
|
109
122
|
security: []
|
|
110
123
|
requestBody:
|
|
@@ -1854,7 +1867,10 @@ paths:
|
|
|
1854
1867
|
tags: [Billing]
|
|
1855
1868
|
summary: Get LLM token billing status
|
|
1856
1869
|
operationId: getLlmTokenBilling
|
|
1857
|
-
description:
|
|
1870
|
+
description: >
|
|
1871
|
+
Returns whether LLM token billing is enabled, optional Stripe billing credit balance
|
|
1872
|
+
(metered scope), and estimated cycle usage from the upcoming invoice—including per-line
|
|
1873
|
+
metered rows when Stripe returns them (amounts; quantities such as tokens when present).
|
|
1858
1874
|
responses:
|
|
1859
1875
|
"200":
|
|
1860
1876
|
description: LLM token billing status
|
|
@@ -2581,6 +2597,72 @@ paths:
|
|
|
2581
2597
|
type: string
|
|
2582
2598
|
enum: [ok, degraded, unavailable]
|
|
2583
2599
|
|
|
2600
|
+
# --- Shroud Activity ---
|
|
2601
|
+
|
|
2602
|
+
/v1/shroud/activity:
|
|
2603
|
+
get:
|
|
2604
|
+
tags: [Shroud]
|
|
2605
|
+
summary: List Shroud activity events
|
|
2606
|
+
description: Returns recent Shroud proxy activity for the organization (LLM requests, inspections, policy actions).
|
|
2607
|
+
security:
|
|
2608
|
+
- BearerAuth: []
|
|
2609
|
+
parameters:
|
|
2610
|
+
- in: query
|
|
2611
|
+
name: agent_id
|
|
2612
|
+
schema:
|
|
2613
|
+
type: string
|
|
2614
|
+
description: Filter by agent ID
|
|
2615
|
+
- in: query
|
|
2616
|
+
name: action
|
|
2617
|
+
schema:
|
|
2618
|
+
type: string
|
|
2619
|
+
description: Filter by action (allowed, blocked, warned)
|
|
2620
|
+
- in: query
|
|
2621
|
+
name: limit
|
|
2622
|
+
schema:
|
|
2623
|
+
type: integer
|
|
2624
|
+
default: 50
|
|
2625
|
+
description: Maximum events to return
|
|
2626
|
+
- in: query
|
|
2627
|
+
name: offset
|
|
2628
|
+
schema:
|
|
2629
|
+
type: integer
|
|
2630
|
+
default: 0
|
|
2631
|
+
description: Pagination offset
|
|
2632
|
+
responses:
|
|
2633
|
+
"200":
|
|
2634
|
+
description: Activity events
|
|
2635
|
+
content:
|
|
2636
|
+
application/json:
|
|
2637
|
+
schema:
|
|
2638
|
+
type: object
|
|
2639
|
+
properties:
|
|
2640
|
+
events:
|
|
2641
|
+
type: array
|
|
2642
|
+
items:
|
|
2643
|
+
$ref: "#/components/schemas/ShroudActivityEvent"
|
|
2644
|
+
total:
|
|
2645
|
+
type: integer
|
|
2646
|
+
"401":
|
|
2647
|
+
description: Unauthorized
|
|
2648
|
+
post:
|
|
2649
|
+
tags: [Shroud]
|
|
2650
|
+
summary: Ingest Shroud activity event (internal)
|
|
2651
|
+
description: Called by the Shroud proxy to record activity events. Not intended for external use.
|
|
2652
|
+
security:
|
|
2653
|
+
- BearerAuth: []
|
|
2654
|
+
requestBody:
|
|
2655
|
+
required: true
|
|
2656
|
+
content:
|
|
2657
|
+
application/json:
|
|
2658
|
+
schema:
|
|
2659
|
+
$ref: "#/components/schemas/IngestShroudActivityRequest"
|
|
2660
|
+
responses:
|
|
2661
|
+
"201":
|
|
2662
|
+
description: Event recorded
|
|
2663
|
+
"401":
|
|
2664
|
+
description: Unauthorized
|
|
2665
|
+
|
|
2584
2666
|
# =============================================================================
|
|
2585
2667
|
# COMPONENTS
|
|
2586
2668
|
# =============================================================================
|
|
@@ -3699,6 +3781,21 @@ components:
|
|
|
3699
3781
|
type: boolean
|
|
3700
3782
|
default: true
|
|
3701
3783
|
description: Whether to log all detected threats to audit (even when action is allow/warn)
|
|
3784
|
+
tool_call_inspection:
|
|
3785
|
+
$ref: "#/components/schemas/ToolCallPolicy"
|
|
3786
|
+
output_policy:
|
|
3787
|
+
$ref: "#/components/schemas/OutputPolicy"
|
|
3788
|
+
secret_injection_detection:
|
|
3789
|
+
$ref: "#/components/schemas/SecretInjectionConfig"
|
|
3790
|
+
advanced_redaction:
|
|
3791
|
+
$ref: "#/components/schemas/AdvancedRedactionConfig"
|
|
3792
|
+
semantic_policy:
|
|
3793
|
+
$ref: "#/components/schemas/SemanticPolicy"
|
|
3794
|
+
flagged_request_retention_days:
|
|
3795
|
+
type: integer
|
|
3796
|
+
minimum: 0
|
|
3797
|
+
maximum: 365
|
|
3798
|
+
description: Number of days to retain flagged request bodies for replay/investigation
|
|
3702
3799
|
|
|
3703
3800
|
UnicodeNormalizationConfig:
|
|
3704
3801
|
type: object
|
|
@@ -3834,6 +3931,150 @@ components:
|
|
|
3834
3931
|
type: string
|
|
3835
3932
|
description: Path patterns to block (e.g., /etc/passwd, ~/.ssh)
|
|
3836
3933
|
|
|
3934
|
+
ToolCallPolicy:
|
|
3935
|
+
type: object
|
|
3936
|
+
description: Tool/function call inspection settings
|
|
3937
|
+
properties:
|
|
3938
|
+
enabled:
|
|
3939
|
+
type: boolean
|
|
3940
|
+
default: false
|
|
3941
|
+
description: Enable tool call inspection
|
|
3942
|
+
allowed_tool_names:
|
|
3943
|
+
type: array
|
|
3944
|
+
items:
|
|
3945
|
+
type: string
|
|
3946
|
+
description: Allowed tool/function names (empty = all allowed)
|
|
3947
|
+
denied_tool_names:
|
|
3948
|
+
type: array
|
|
3949
|
+
items:
|
|
3950
|
+
type: string
|
|
3951
|
+
description: Denied tool/function names
|
|
3952
|
+
scan_arguments:
|
|
3953
|
+
type: boolean
|
|
3954
|
+
default: true
|
|
3955
|
+
description: Scan tool call arguments for credential exfiltration
|
|
3956
|
+
block_credential_exfil:
|
|
3957
|
+
type: boolean
|
|
3958
|
+
default: true
|
|
3959
|
+
description: Block tool calls that appear to exfiltrate credentials
|
|
3960
|
+
action:
|
|
3961
|
+
type: string
|
|
3962
|
+
enum: [block, sanitize, warn, log]
|
|
3963
|
+
default: block
|
|
3964
|
+
description: Action when a tool call violation is detected
|
|
3965
|
+
|
|
3966
|
+
OutputPolicy:
|
|
3967
|
+
type: object
|
|
3968
|
+
description: Output content policy settings for LLM responses
|
|
3969
|
+
properties:
|
|
3970
|
+
enabled:
|
|
3971
|
+
type: boolean
|
|
3972
|
+
default: false
|
|
3973
|
+
description: Enable output content policies
|
|
3974
|
+
blocked_patterns:
|
|
3975
|
+
type: array
|
|
3976
|
+
items:
|
|
3977
|
+
type: string
|
|
3978
|
+
description: Custom regex patterns to block in responses
|
|
3979
|
+
blocked_entities:
|
|
3980
|
+
type: array
|
|
3981
|
+
items:
|
|
3982
|
+
type: string
|
|
3983
|
+
description: Named entities to block (e.g., competitor names)
|
|
3984
|
+
block_harmful_content:
|
|
3985
|
+
type: boolean
|
|
3986
|
+
default: false
|
|
3987
|
+
description: Block responses containing harmful content categories
|
|
3988
|
+
harmful_categories:
|
|
3989
|
+
type: array
|
|
3990
|
+
items:
|
|
3991
|
+
type: string
|
|
3992
|
+
enum: [violence, self_harm, illegal, hate, sexual, malware]
|
|
3993
|
+
description: Harm categories to block
|
|
3994
|
+
action:
|
|
3995
|
+
type: string
|
|
3996
|
+
enum: [block, sanitize, warn, log]
|
|
3997
|
+
default: warn
|
|
3998
|
+
description: Action when output policy is violated
|
|
3999
|
+
|
|
4000
|
+
SecretInjectionConfig:
|
|
4001
|
+
type: object
|
|
4002
|
+
description: Detects credentials injected into prompts that are not from the vault
|
|
4003
|
+
properties:
|
|
4004
|
+
enabled:
|
|
4005
|
+
type: boolean
|
|
4006
|
+
default: false
|
|
4007
|
+
description: Enable secret injection detection
|
|
4008
|
+
action:
|
|
4009
|
+
type: string
|
|
4010
|
+
enum: [block, sanitize, warn, log]
|
|
4011
|
+
default: block
|
|
4012
|
+
description: Action when injected credentials are detected
|
|
4013
|
+
sensitivity:
|
|
4014
|
+
type: string
|
|
4015
|
+
enum: [low, medium, high]
|
|
4016
|
+
default: medium
|
|
4017
|
+
description: Detection sensitivity level
|
|
4018
|
+
|
|
4019
|
+
AdvancedRedactionConfig:
|
|
4020
|
+
type: object
|
|
4021
|
+
description: Advanced secret redaction settings (base64-encoded, split, prefix leaks)
|
|
4022
|
+
properties:
|
|
4023
|
+
enabled:
|
|
4024
|
+
type: boolean
|
|
4025
|
+
default: false
|
|
4026
|
+
description: Enable advanced redaction checks
|
|
4027
|
+
detect_base64_encoded:
|
|
4028
|
+
type: boolean
|
|
4029
|
+
default: false
|
|
4030
|
+
description: Detect base64-encoded vault secrets
|
|
4031
|
+
detect_split_secrets:
|
|
4032
|
+
type: boolean
|
|
4033
|
+
default: false
|
|
4034
|
+
description: Detect secrets split across tokens or messages
|
|
4035
|
+
detect_prefix_leak:
|
|
4036
|
+
type: boolean
|
|
4037
|
+
default: false
|
|
4038
|
+
description: Detect partial/prefix leaks of vault secrets
|
|
4039
|
+
min_secret_length:
|
|
4040
|
+
type: integer
|
|
4041
|
+
default: 16
|
|
4042
|
+
description: Minimum secret length to consider for advanced matching
|
|
4043
|
+
|
|
4044
|
+
SemanticPolicy:
|
|
4045
|
+
type: object
|
|
4046
|
+
description: Semantic/intent-level policy enforcement
|
|
4047
|
+
properties:
|
|
4048
|
+
enabled:
|
|
4049
|
+
type: boolean
|
|
4050
|
+
default: false
|
|
4051
|
+
description: Enable semantic policy enforcement
|
|
4052
|
+
allowed_topics:
|
|
4053
|
+
type: array
|
|
4054
|
+
items:
|
|
4055
|
+
type: string
|
|
4056
|
+
description: Topics the agent is allowed to discuss (empty = all)
|
|
4057
|
+
denied_topics:
|
|
4058
|
+
type: array
|
|
4059
|
+
items:
|
|
4060
|
+
type: string
|
|
4061
|
+
description: Topics to block
|
|
4062
|
+
allowed_tasks:
|
|
4063
|
+
type: array
|
|
4064
|
+
items:
|
|
4065
|
+
type: string
|
|
4066
|
+
description: Tasks the agent is allowed to perform (empty = all)
|
|
4067
|
+
denied_tasks:
|
|
4068
|
+
type: array
|
|
4069
|
+
items:
|
|
4070
|
+
type: string
|
|
4071
|
+
description: Tasks to block (e.g., code_generation, data_export)
|
|
4072
|
+
action:
|
|
4073
|
+
type: string
|
|
4074
|
+
enum: [block, sanitize, warn, log]
|
|
4075
|
+
default: warn
|
|
4076
|
+
description: Action when semantic policy is violated
|
|
4077
|
+
|
|
3837
4078
|
AgentCreatedResponse:
|
|
3838
4079
|
type: object
|
|
3839
4080
|
required: [agent]
|
|
@@ -4487,14 +4728,74 @@ components:
|
|
|
4487
4728
|
limit:
|
|
4488
4729
|
type: integer
|
|
4489
4730
|
|
|
4731
|
+
LlmMeteredInvoiceLine:
|
|
4732
|
+
type: object
|
|
4733
|
+
description: Metered line from Stripe upcoming invoice (usage detail when available).
|
|
4734
|
+
properties:
|
|
4735
|
+
description:
|
|
4736
|
+
type: string
|
|
4737
|
+
nullable: true
|
|
4738
|
+
amount_cents:
|
|
4739
|
+
type: integer
|
|
4740
|
+
format: int64
|
|
4741
|
+
quantity:
|
|
4742
|
+
type: number
|
|
4743
|
+
nullable: true
|
|
4744
|
+
description: Billed usage units when Stripe returns quantity (e.g. tokens).
|
|
4745
|
+
price_nickname:
|
|
4746
|
+
type: string
|
|
4747
|
+
nullable: true
|
|
4748
|
+
|
|
4749
|
+
LlmBillingCycleUsage:
|
|
4750
|
+
type: object
|
|
4751
|
+
description: Accrued LLM charges for the current Stripe subscription period (upcoming invoice).
|
|
4752
|
+
properties:
|
|
4753
|
+
period_start:
|
|
4754
|
+
type: string
|
|
4755
|
+
format: date-time
|
|
4756
|
+
nullable: true
|
|
4757
|
+
period_end:
|
|
4758
|
+
type: string
|
|
4759
|
+
format: date-time
|
|
4760
|
+
nullable: true
|
|
4761
|
+
accrued_usage_cents:
|
|
4762
|
+
type: integer
|
|
4763
|
+
format: int64
|
|
4764
|
+
currency:
|
|
4765
|
+
type: string
|
|
4766
|
+
metered_lines:
|
|
4767
|
+
type: array
|
|
4768
|
+
items:
|
|
4769
|
+
$ref: "#/components/schemas/LlmMeteredInvoiceLine"
|
|
4770
|
+
|
|
4771
|
+
LlmCreditBalance:
|
|
4772
|
+
type: object
|
|
4773
|
+
properties:
|
|
4774
|
+
available_cents:
|
|
4775
|
+
type: integer
|
|
4776
|
+
format: int64
|
|
4777
|
+
ledger_cents:
|
|
4778
|
+
type: integer
|
|
4779
|
+
format: int64
|
|
4780
|
+
used_cents:
|
|
4781
|
+
type: integer
|
|
4782
|
+
format: int64
|
|
4783
|
+
currency:
|
|
4784
|
+
type: string
|
|
4785
|
+
|
|
4490
4786
|
LlmTokenBillingStatus:
|
|
4491
4787
|
type: object
|
|
4788
|
+
required: [enabled]
|
|
4492
4789
|
properties:
|
|
4493
4790
|
enabled:
|
|
4494
4791
|
type: boolean
|
|
4495
4792
|
subscription_status:
|
|
4496
4793
|
type: string
|
|
4497
4794
|
enum: [active, inactive]
|
|
4795
|
+
credit_balance:
|
|
4796
|
+
$ref: "#/components/schemas/LlmCreditBalance"
|
|
4797
|
+
billing_cycle_usage:
|
|
4798
|
+
$ref: "#/components/schemas/LlmBillingCycleUsage"
|
|
4498
4799
|
|
|
4499
4800
|
LlmCheckoutResponse:
|
|
4500
4801
|
type: object
|
|
@@ -4919,6 +5220,84 @@ components:
|
|
|
4919
5220
|
description:
|
|
4920
5221
|
type: string
|
|
4921
5222
|
|
|
5223
|
+
# --- Shroud Activity ---
|
|
5224
|
+
|
|
5225
|
+
ShroudActivityEvent:
|
|
5226
|
+
type: object
|
|
5227
|
+
properties:
|
|
5228
|
+
id:
|
|
5229
|
+
type: string
|
|
5230
|
+
format: uuid
|
|
5231
|
+
org_id:
|
|
5232
|
+
type: string
|
|
5233
|
+
format: uuid
|
|
5234
|
+
agent_id:
|
|
5235
|
+
type: string
|
|
5236
|
+
provider:
|
|
5237
|
+
type: string
|
|
5238
|
+
model:
|
|
5239
|
+
type: string
|
|
5240
|
+
action:
|
|
5241
|
+
type: string
|
|
5242
|
+
description: Action taken (allowed, blocked, warned)
|
|
5243
|
+
request_tokens:
|
|
5244
|
+
type: integer
|
|
5245
|
+
response_tokens:
|
|
5246
|
+
type: integer
|
|
5247
|
+
latency_ms:
|
|
5248
|
+
type: integer
|
|
5249
|
+
had_secrets_redacted:
|
|
5250
|
+
type: boolean
|
|
5251
|
+
had_pii_detected:
|
|
5252
|
+
type: boolean
|
|
5253
|
+
injection_score:
|
|
5254
|
+
type: number
|
|
5255
|
+
policy_violations:
|
|
5256
|
+
type: array
|
|
5257
|
+
items:
|
|
5258
|
+
type: string
|
|
5259
|
+
metadata:
|
|
5260
|
+
type: object
|
|
5261
|
+
timestamp:
|
|
5262
|
+
type: string
|
|
5263
|
+
format: date-time
|
|
5264
|
+
|
|
5265
|
+
IngestShroudActivityRequest:
|
|
5266
|
+
type: object
|
|
5267
|
+
required: [agent_id, action]
|
|
5268
|
+
properties:
|
|
5269
|
+
agent_id:
|
|
5270
|
+
type: string
|
|
5271
|
+
provider:
|
|
5272
|
+
type: string
|
|
5273
|
+
model:
|
|
5274
|
+
type: string
|
|
5275
|
+
action:
|
|
5276
|
+
type: string
|
|
5277
|
+
request_tokens:
|
|
5278
|
+
type: integer
|
|
5279
|
+
default: 0
|
|
5280
|
+
response_tokens:
|
|
5281
|
+
type: integer
|
|
5282
|
+
default: 0
|
|
5283
|
+
latency_ms:
|
|
5284
|
+
type: integer
|
|
5285
|
+
had_secrets_redacted:
|
|
5286
|
+
type: boolean
|
|
5287
|
+
default: false
|
|
5288
|
+
had_pii_detected:
|
|
5289
|
+
type: boolean
|
|
5290
|
+
default: false
|
|
5291
|
+
injection_score:
|
|
5292
|
+
type: number
|
|
5293
|
+
default: 0
|
|
5294
|
+
policy_violations:
|
|
5295
|
+
type: array
|
|
5296
|
+
items:
|
|
5297
|
+
type: string
|
|
5298
|
+
metadata:
|
|
5299
|
+
type: object
|
|
5300
|
+
|
|
4922
5301
|
# --- Health ---
|
|
4923
5302
|
|
|
4924
5303
|
HealthResponse:
|