@1claw/openapi-spec 0.16.3 → 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 CHANGED
@@ -40,7 +40,7 @@ openapi-generator generate \
40
40
  import spec from "@1claw/openapi-spec/openapi.json";
41
41
  ```
42
42
 
43
- ## What's in the spec (v0.16.x)
43
+ ## What's in the spec (v0.17.x)
44
44
 
45
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.
46
46
  - **Auth — password reset** — `POST /v1/auth/forgot-password`, `POST /v1/auth/reset-password` (public; anti-enumeration on forgot)
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.6.0",
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"
@@ -4027,6 +4027,112 @@
4027
4027
  }
4028
4028
  }
4029
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
+ }
4030
4136
  }
4031
4137
  },
4032
4138
  "components": {
@@ -5615,6 +5721,27 @@
5615
5721
  "type": "boolean",
5616
5722
  "default": true,
5617
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"
5618
5745
  }
5619
5746
  }
5620
5747
  },
@@ -5821,6 +5948,221 @@
5821
5948
  }
5822
5949
  }
5823
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
+ },
5824
6166
  "AgentCreatedResponse": {
5825
6167
  "type": "object",
5826
6168
  "required": [
@@ -7482,6 +7824,116 @@
7482
7824
  }
7483
7825
  }
7484
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
+ },
7485
7937
  "HealthResponse": {
7486
7938
  "type": "object",
7487
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.6.0
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,
@@ -2597,6 +2597,72 @@ paths:
2597
2597
  type: string
2598
2598
  enum: [ok, degraded, unavailable]
2599
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
+
2600
2666
  # =============================================================================
2601
2667
  # COMPONENTS
2602
2668
  # =============================================================================
@@ -3715,6 +3781,21 @@ components:
3715
3781
  type: boolean
3716
3782
  default: true
3717
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
3718
3799
 
3719
3800
  UnicodeNormalizationConfig:
3720
3801
  type: object
@@ -3850,6 +3931,150 @@ components:
3850
3931
  type: string
3851
3932
  description: Path patterns to block (e.g., /etc/passwd, ~/.ssh)
3852
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
+
3853
4078
  AgentCreatedResponse:
3854
4079
  type: object
3855
4080
  required: [agent]
@@ -4995,6 +5220,84 @@ components:
4995
5220
  description:
4996
5221
  type: string
4997
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
+
4998
5301
  # --- Health ---
4999
5302
 
5000
5303
  HealthResponse:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.16.3",
3
+ "version": "0.17.0",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API — generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {