@1claw/sdk 0.61.1 → 0.61.12

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.
@@ -10185,6 +10185,96 @@ export interface paths {
10185
10185
  patch?: never;
10186
10186
  trace?: never;
10187
10187
  };
10188
+ "/v1/platform/connections/{connection_id}/otel/topology": {
10189
+ parameters: {
10190
+ query?: never;
10191
+ header?: never;
10192
+ path?: never;
10193
+ cookie?: never;
10194
+ };
10195
+ /**
10196
+ * Topology for one connection's agents
10197
+ * @description The same graph as `/v1/otel/topology`, restricted to what this connection's agents reach: the agents, the policies they hold, the vaults those grant, the chains they sign on and the systems they call. Restricted before the 500-node cap, so a large org's cap cannot cut the connection's own agents out. Walking is directed (agent → policy → vault), so a vault shared with another tenant's agent does not reveal that agent.
10198
+ *
10199
+ * A `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.
10200
+ */
10201
+ get: operations["get_platform_connection_otel_topology"];
10202
+ put?: never;
10203
+ post?: never;
10204
+ delete?: never;
10205
+ options?: never;
10206
+ head?: never;
10207
+ patch?: never;
10208
+ trace?: never;
10209
+ };
10210
+ "/v1/platform/connections/{connection_id}/otel/threats": {
10211
+ parameters: {
10212
+ query?: never;
10213
+ header?: never;
10214
+ path?: never;
10215
+ cookie?: never;
10216
+ };
10217
+ /**
10218
+ * Open threats on one connection's agents
10219
+ * @description `/v1/otel/threats` filtered to the connection's agents, same ranking (blast radius, then recency).
10220
+ *
10221
+ * A `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.
10222
+ */
10223
+ get: operations["get_platform_connection_otel_threats"];
10224
+ put?: never;
10225
+ post?: never;
10226
+ delete?: never;
10227
+ options?: never;
10228
+ head?: never;
10229
+ patch?: never;
10230
+ trace?: never;
10231
+ };
10232
+ "/v1/platform/connections/{connection_id}/otel/summary": {
10233
+ parameters: {
10234
+ query?: never;
10235
+ header?: never;
10236
+ path?: never;
10237
+ cookie?: never;
10238
+ };
10239
+ /**
10240
+ * Posture score and counts for one connection's agents
10241
+ * @description `/v1/otel/summary` over a smaller world: the posture score uses the connection's agents' trust scores and the resources they reach; threat and pending-approval counts are the connection's agents' only.
10242
+ *
10243
+ * A `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.
10244
+ */
10245
+ get: operations["get_platform_connection_otel_summary"];
10246
+ put?: never;
10247
+ post?: never;
10248
+ delete?: never;
10249
+ options?: never;
10250
+ head?: never;
10251
+ patch?: never;
10252
+ trace?: never;
10253
+ };
10254
+ "/v1/platform/connections/{connection_id}/otel/stream": {
10255
+ parameters: {
10256
+ query?: never;
10257
+ header?: never;
10258
+ path?: never;
10259
+ cookie?: never;
10260
+ };
10261
+ /**
10262
+ * Live signal stream for one connection's agents (SSE)
10263
+ * @description The same protocol as `/v1/otel/stream` — `Last-Event-ID` resume, `event: gap` on a stale cursor or a lagged subscriber — filtered to signals whose agent is one of the connection's. Signals with no agent (a human's own dashboard actions) are never emitted here. The agent set is fixed at connect time; an agent added later appears on the next connect.
10264
+ *
10265
+ * Stream slots are counted per platform app (five), not per connection.
10266
+ *
10267
+ * A `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.
10268
+ */
10269
+ get: operations["get_platform_connection_otel_stream"];
10270
+ put?: never;
10271
+ post?: never;
10272
+ delete?: never;
10273
+ options?: never;
10274
+ head?: never;
10275
+ patch?: never;
10276
+ trace?: never;
10277
+ };
10188
10278
  "/v1/platform/connections/{connection_id}/resources": {
10189
10279
  parameters: {
10190
10280
  query?: never;
@@ -10334,6 +10424,218 @@ export interface paths {
10334
10424
  patch?: never;
10335
10425
  trace?: never;
10336
10426
  };
10427
+ "/v1/otel/stream": {
10428
+ parameters: {
10429
+ query?: never;
10430
+ header?: never;
10431
+ path?: never;
10432
+ cookie?: never;
10433
+ };
10434
+ /**
10435
+ * SSE stream of this org's telemetry signals
10436
+ * @description Server-sent events carrying spans, metrics and events for the caller's organization. Human users only: an agent must not be able to subscribe to org-wide telemetry.
10437
+ *
10438
+ * Every message carries an `id:` field. On reconnect, send the last one back as the `Last-Event-ID` header to resume. If that id has fallen out of the server's buffer, or came from another replica, the stream opens with an `event: gap` message and the client must refetch topology rather than assume continuity. A `gap` is also emitted, without closing the connection, when a subscriber falls behind.
10439
+ */
10440
+ get: operations["stream_otel_signals"];
10441
+ put?: never;
10442
+ post?: never;
10443
+ delete?: never;
10444
+ options?: never;
10445
+ head?: never;
10446
+ patch?: never;
10447
+ trace?: never;
10448
+ };
10449
+ "/v1/otel/threats": {
10450
+ parameters: {
10451
+ query?: never;
10452
+ header?: never;
10453
+ path?: never;
10454
+ cookie?: never;
10455
+ };
10456
+ /**
10457
+ * Durable threat register for the org, worst reach first
10458
+ * @description Threats are ranked by blast radius — the size of the affected agent's topology neighbourhood (vaults + connectors + chains) — not by recency or severity alone, so the row an operator should look at first is first. Ties fall back to recency.
10459
+ *
10460
+ * `shadow: true` marks a threat the trust engine produced while running in recommend-only mode. Those are shown with a badge and never acted on automatically.
10461
+ *
10462
+ * Evidence carries trace and span ids and a note. It never contains secret values or HTTP bodies.
10463
+ */
10464
+ get: operations["list_otel_threats"];
10465
+ put?: never;
10466
+ post?: never;
10467
+ delete?: never;
10468
+ options?: never;
10469
+ head?: never;
10470
+ patch?: never;
10471
+ trace?: never;
10472
+ };
10473
+ "/v1/org/settings/otel-export": {
10474
+ parameters: {
10475
+ query?: never;
10476
+ header?: never;
10477
+ path?: never;
10478
+ cookie?: never;
10479
+ };
10480
+ /**
10481
+ * Read the org's OTLP export configuration
10482
+ * @description Owner or admin, Team tier and above. Returns header *names* only — the values are the customer's collector credentials and never round-trip through the browser.
10483
+ */
10484
+ get: operations["get_otel_export_config"];
10485
+ put?: never;
10486
+ post?: never;
10487
+ delete?: never;
10488
+ options?: never;
10489
+ head?: never;
10490
+ /**
10491
+ * Update the org's OTLP export configuration
10492
+ * @description Every field is optional and only present fields change. The endpoint is validated *and DNS-resolved* on save: HTTPS only, no embedded credentials, and refused if any resolved address is private, loopback, link-local, metadata or ULA. A URL that resolves to a private address is the SSRF, and it is refused here rather than left in the database looking configured.
10493
+ *
10494
+ * `headers` replaces the whole map when present and is encrypted at rest under the org's key. Omit it to change other fields without touching stored header values you cannot read back.
10495
+ *
10496
+ * Transport is OTLP over HTTP with JSON encoding, posted to `<endpoint>/v1/traces`, `/v1/metrics` and `/v1/logs`. What leaves is exactly what the org's own dashboard stream carries — signals already through the collector's redaction pass.
10497
+ */
10498
+ patch: operations["patch_otel_export_config"];
10499
+ trace?: never;
10500
+ };
10501
+ "/v1/org/settings/otel-export/test": {
10502
+ parameters: {
10503
+ query?: never;
10504
+ header?: never;
10505
+ path?: never;
10506
+ cookie?: never;
10507
+ };
10508
+ get?: never;
10509
+ put?: never;
10510
+ /**
10511
+ * Send one synthetic span to the configured endpoint
10512
+ * @description Re-resolves the endpoint at send time and pins the connection to the resolved address, with redirects disabled. Rate-limited to 5 per minute per org: even a validated endpoint is an outbound request the caller chose the target of.
10513
+ */
10514
+ post: operations["test_otel_export"];
10515
+ delete?: never;
10516
+ options?: never;
10517
+ head?: never;
10518
+ patch?: never;
10519
+ trace?: never;
10520
+ };
10521
+ "/v1/otel/metrics": {
10522
+ parameters: {
10523
+ query?: never;
10524
+ header?: never;
10525
+ path?: never;
10526
+ cookie?: never;
10527
+ };
10528
+ /**
10529
+ * Time-bucketed rollups from durable tables
10530
+ * @description Volume, denials and latency over a window. Sourced from durable tables, never from in-process counters: an in-memory histogram is per-replica and resets on deploy, so a 24h chart drawn from one disagrees between instances and is wrong after every release.
10531
+ *
10532
+ * Every bucket in the range is returned, including empty ones. A quiet hour is a zero, not a missing point — a line chart given a hole joins across it as though nothing happened.
10533
+ *
10534
+ * `step` may be widened from what was requested when the window would otherwise produce more than 500 buckets. The response echoes the window and step actually used, so a chart can label its own resolution rather than the one it asked for.
10535
+ */
10536
+ get: operations["get_otel_metrics"];
10537
+ put?: never;
10538
+ post?: never;
10539
+ delete?: never;
10540
+ options?: never;
10541
+ head?: never;
10542
+ patch?: never;
10543
+ trace?: never;
10544
+ };
10545
+ "/v1/otel/agents/{agent_id}/trust": {
10546
+ parameters: {
10547
+ query?: never;
10548
+ header?: never;
10549
+ path?: never;
10550
+ cookie?: never;
10551
+ };
10552
+ /**
10553
+ * The breakdown behind one agent's trust score
10554
+ * @description The topology carries a single 0-100 trust number per agent. This is what it is made of: each weighted component (`null` when this deployment has no source for it — not measured, not zero), a 24-hour history for a sparkline, and the agent's last audit actions. Actions and resource types only; audit `metadata` is where secret paths live and it is not returned.
10555
+ *
10556
+ * Scores are `shadow` until the engine is promoted out of recommend-only mode; an agent the engine has not yet reached returns `score: null` and `shadow: true`.
10557
+ *
10558
+ * Human users only. An agent id outside the caller's org is a 404, not a 403, so the response does not confirm the id exists.
10559
+ */
10560
+ get: operations["get_otel_agent_trust"];
10561
+ put?: never;
10562
+ post?: never;
10563
+ delete?: never;
10564
+ options?: never;
10565
+ head?: never;
10566
+ patch?: never;
10567
+ trace?: never;
10568
+ };
10569
+ "/v1/otel/flows": {
10570
+ parameters: {
10571
+ query?: never;
10572
+ header?: never;
10573
+ path?: never;
10574
+ cookie?: never;
10575
+ };
10576
+ /**
10577
+ * Who actually read from which vault
10578
+ * @description Reachability (the topology's policy edges) says who *could* read a vault. This says who *did*, counted from `audit_events.action = 'secret.read'` — the durable record every read already writes — grouped by agent and vault. That is what lets a Sankey ribbon's width be a count of real reads rather than a guess.
10579
+ *
10580
+ * Agent actors only; a human reading a secret through the dashboard is not an agent flow. Deleted agents and vaults are kept and labelled as such — a read that happened is still a read.
10581
+ */
10582
+ get: operations["get_otel_flows"];
10583
+ put?: never;
10584
+ post?: never;
10585
+ delete?: never;
10586
+ options?: never;
10587
+ head?: never;
10588
+ patch?: never;
10589
+ trace?: never;
10590
+ };
10591
+ "/v1/otel/summary": {
10592
+ parameters: {
10593
+ query?: never;
10594
+ header?: never;
10595
+ path?: never;
10596
+ cookie?: never;
10597
+ };
10598
+ /**
10599
+ * Posture score and the counts behind it
10600
+ * @description `posture_score` is the mean agent trust score, less a penalty per open critical threat scaled by the fraction of the organization that threat can reach. Scaling by fraction rather than count is what makes the number comparable between a seven-agent org and a fifty-agent one.
10601
+ *
10602
+ * It returns 100 when there are no agents, and also while the trust engine is still in shadow mode and no scores exist yet — absence of data is not evidence of compromise. It never goes below 0.
10603
+ *
10604
+ * `top_threats` uses the same ranking as `/v1/otel/threats`, so clicking through from the summary lands on the same first row.
10605
+ */
10606
+ get: operations["get_otel_summary"];
10607
+ put?: never;
10608
+ post?: never;
10609
+ delete?: never;
10610
+ options?: never;
10611
+ head?: never;
10612
+ patch?: never;
10613
+ trace?: never;
10614
+ };
10615
+ "/v1/otel/topology": {
10616
+ parameters: {
10617
+ query?: never;
10618
+ header?: never;
10619
+ path?: never;
10620
+ cookie?: never;
10621
+ };
10622
+ /**
10623
+ * Agent, vault, policy, connector and chain graph for the org
10624
+ * @description A snapshot of the organization's resources and how they connect. Human users only.
10625
+ *
10626
+ * Capped at 500 nodes. When the cap applies, `truncated` is true and `total_nodes` reports the count before capping — a client must not present a truncated graph as complete. Agents are kept in preference to everything else, and edges that lose an endpoint to the cap are removed.
10627
+ *
10628
+ * Agent `status` is derived at request time, never stored, so it cannot go stale.
10629
+ */
10630
+ get: operations["get_otel_topology"];
10631
+ put?: never;
10632
+ post?: never;
10633
+ delete?: never;
10634
+ options?: never;
10635
+ head?: never;
10636
+ patch?: never;
10637
+ trace?: never;
10638
+ };
10337
10639
  "/v1/runtimes/{runtime_id}/logs/stream": {
10338
10640
  parameters: {
10339
10641
  query?: never;
@@ -10689,6 +10991,69 @@ export interface paths {
10689
10991
  export type webhooks = Record<string, never>;
10690
10992
  export interface components {
10691
10993
  schemas: {
10994
+ OtelTopology: {
10995
+ nodes: {
10996
+ /** @description Namespaced by kind, e.g. `agent:<uuid>`. */
10997
+ id: string;
10998
+ /** @enum {string} */
10999
+ kind: "agent" | "vault" | "policy" | "connector" | "chain";
11000
+ label: string;
11001
+ /**
11002
+ * @description Agents only. Derived, not stored.
11003
+ * @enum {string}
11004
+ */
11005
+ status?: "compromised" | "warn" | "suspended" | "ok";
11006
+ /** @description Agents only. Absent until the trust engine has scored the agent. */
11007
+ trust?: number;
11008
+ }[];
11009
+ edges: {
11010
+ from: string;
11011
+ to: string;
11012
+ /** @enum {string} */
11013
+ kind: "calls" | "grants" | "holds" | "signs";
11014
+ }[];
11015
+ truncated: boolean;
11016
+ /** @description Node count before the cap. */
11017
+ total_nodes: number;
11018
+ /** @description Present and true only for synthetic data. */
11019
+ fixture?: boolean;
11020
+ };
11021
+ OtelThreatList: {
11022
+ /** Format: uuid */
11023
+ id: string;
11024
+ /** Format: uuid */
11025
+ agent_id: string;
11026
+ /** @enum {string} */
11027
+ class: "prompt_injection" | "policy_breach" | "spend_anomaly" | "key_exfil" | "off_hours" | "consensus_bypass" | "trust_breach";
11028
+ /** @enum {string} */
11029
+ severity: "critical" | "warn";
11030
+ detected_by: string;
11031
+ /** @enum {string} */
11032
+ status: "open" | "acknowledged" | "resolved";
11033
+ shadow: boolean;
11034
+ evidence?: Record<string, never>[];
11035
+ blast_radius: {
11036
+ vaults?: number;
11037
+ connectors?: number;
11038
+ chains?: number;
11039
+ };
11040
+ /** @description Sum of the blast radius. The sort key. */
11041
+ blast_radius_size: number;
11042
+ resolved_by?: string | null;
11043
+ /** Format: date-time */
11044
+ created_at?: string;
11045
+ /** Format: date-time */
11046
+ updated_at?: string;
11047
+ }[];
11048
+ OtelSummary: {
11049
+ posture_score: number;
11050
+ open_threats: number;
11051
+ open_critical: number;
11052
+ pending_approvals: number;
11053
+ agent_count: number;
11054
+ /** @description At most five, same ranking as /v1/otel/threats. */
11055
+ top_threats: Record<string, never>[];
11056
+ };
10692
11057
  UpdatePayGuardrailsRequest: {
10693
11058
  pay_enabled?: boolean;
10694
11059
  pay_max_usd?: string | null;
@@ -10917,13 +11282,21 @@ export interface components {
10917
11282
  /** @enum {string} */
10918
11283
  mfa_method?: "totp" | "passkey";
10919
11284
  };
11285
+ /** @description Exactly one credential, decided by the agent's auth_method: api_key for api_key agents, oidc_token for oidc_client_credentials agents. mTLS agents send neither and present a client certificate through the TLS terminator. */
10920
11286
  AgentTokenRequest: {
10921
11287
  /**
10922
11288
  * Format: uuid
10923
- * @description Optional when using key-only auth (ocv_ keys auto-resolve agent)
11289
+ * @description Optional for api_key agents (ocv_ keys auto-resolve from their prefix). Required for OIDC and mTLS agents, which have no key to look up by.
10924
11290
  */
10925
11291
  agent_id?: string;
10926
- api_key: string;
11292
+ /** @description The ocv_ key, for auth_method api_key. */
11293
+ api_key?: string;
11294
+ /** @description Token minted by the agent's OIDC provider, for auth_method oidc_client_credentials. Verified against the issuer and audience on the agent record, so nothing long-lived is stored where the agent runs. */
11295
+ oidc_token?: string;
11296
+ /** @description Optional DPoP public key (JWK) binding the issued JWT to a client keypair. */
11297
+ dpop_jwk?: {
11298
+ [key: string]: unknown;
11299
+ };
10927
11300
  };
10928
11301
  UserApiKeyTokenRequest: {
10929
11302
  api_key: string;
@@ -11380,10 +11753,35 @@ export interface components {
11380
11753
  approval_url?: string;
11381
11754
  };
11382
11755
  CreateAgentRequest: {
11383
- name: string;
11384
- description?: string;
11385
- /**
11386
- * @description Authentication method. api_key generates a one-time key; mtls requires client_cert_fingerprint; oidc_client_credentials requires oidc_issuer and oidc_client_id.
11756
+ /** @description Default LLM provider for automations and Shroud. */
11757
+ default_llm_provider?: string;
11758
+ /** @description Default LLM model for automations and Shroud. */
11759
+ default_llm_model?: string;
11760
+ /** @description List this agent in the cross-org agent directory. */
11761
+ discoverable?: boolean;
11762
+ /** @description Description shown on the public directory listing. */
11763
+ public_description?: string;
11764
+ /** @description Tags shown on the public directory listing. */
11765
+ public_tags?: string[];
11766
+ /** @description Skip creating the default access policy for this agent. */
11767
+ skip_default_policy?: boolean;
11768
+ /** @description Address screening policy applied to transaction recipients. */
11769
+ address_screening_policy?: {
11770
+ [key: string]: unknown;
11771
+ };
11772
+ /** @description Enable durable key-value and semantic memory for this agent. Required before PUT /v1/agents/{agent_id}/memory/{namespace}/{key} will accept a write; without it that endpoint returns 403. */
11773
+ memory_enabled?: boolean;
11774
+ /** @description Namespaces this agent may use. Empty or omitted means unrestricted. */
11775
+ memory_namespace_allowlist?: string[];
11776
+ /**
11777
+ * Format: int32
11778
+ * @description Maximum size of a single memory entry value. Null uses the platform default (64 KiB).
11779
+ */
11780
+ memory_max_entry_bytes?: number | null;
11781
+ name: string;
11782
+ description?: string;
11783
+ /**
11784
+ * @description Authentication method. api_key generates a one-time key; mtls requires client_cert_fingerprint; oidc_client_credentials requires oidc_issuer and oidc_client_id.
11387
11785
  * @default api_key
11388
11786
  * @enum {string}
11389
11787
  */
@@ -11577,6 +11975,50 @@ export interface components {
11577
11975
  approval_id?: string;
11578
11976
  };
11579
11977
  UpdateAgentRequest: {
11978
+ /** @description Smart account address associated with this agent. */
11979
+ smart_account_address?: string;
11980
+ /** @description Chain name for the smart account. */
11981
+ smart_account_chain?: string;
11982
+ /**
11983
+ * Format: int32
11984
+ * @description EVM chain id for the smart account.
11985
+ */
11986
+ smart_account_chain_id?: number;
11987
+ /** @description Smart account deployment nonce. */
11988
+ smart_account_nonce?: string;
11989
+ /** @description Smart account initialisation data. */
11990
+ smart_account_init_data?: {
11991
+ [key: string]: unknown;
11992
+ };
11993
+ /** @description Allow this agent to sign arbitrary messages. */
11994
+ message_signing_enabled?: boolean;
11995
+ /** @description EIP-712 domains this agent may sign under. */
11996
+ eip712_domain_allowlist?: {
11997
+ [key: string]: unknown;
11998
+ };
11999
+ /** @description Default policy applied to EIP-712 signing requests. */
12000
+ eip712_default_policy?: string;
12001
+ /** @description Allow this agent to sign raw digests. */
12002
+ raw_signing_enabled?: boolean;
12003
+ /** @description Default LLM provider for automations and Shroud. */
12004
+ default_llm_provider?: string | null;
12005
+ /** @description Default LLM model for automations and Shroud. */
12006
+ default_llm_model?: string | null;
12007
+ /** @description List this agent in the cross-org agent directory. */
12008
+ discoverable?: boolean;
12009
+ /** @description Description shown on the public directory listing. */
12010
+ public_description?: string | null;
12011
+ /** @description Tags shown on the public directory listing. */
12012
+ public_tags?: string[];
12013
+ /** @description Enable durable key-value and semantic memory for this agent. Required before PUT /v1/agents/{agent_id}/memory/{namespace}/{key} will accept a write; without it that endpoint returns 403. */
12014
+ memory_enabled?: boolean;
12015
+ /** @description Namespaces this agent may use. Empty or omitted means unrestricted. */
12016
+ memory_namespace_allowlist?: string[];
12017
+ /**
12018
+ * Format: int32
12019
+ * @description Maximum size of a single memory entry value. Null uses the platform default (64 KiB).
12020
+ */
12021
+ memory_max_entry_bytes?: number | null;
11580
12022
  name?: string;
11581
12023
  scopes?: string[];
11582
12024
  is_active?: boolean;
@@ -11755,6 +12197,15 @@ export interface components {
11755
12197
  approval_id?: string;
11756
12198
  };
11757
12199
  AgentResponse: {
12200
+ /** @description Whether durable key-value and semantic memory is enabled. Omitted when false: the server skips serializing this field unless it is true, so an absent key means disabled. */
12201
+ memory_enabled?: boolean;
12202
+ /** @description Namespaces this agent may use. Omitted when empty, which means unrestricted. */
12203
+ memory_namespace_allowlist?: string[];
12204
+ /**
12205
+ * Format: int32
12206
+ * @description Maximum size of a single memory entry value. Omitted when unset, which means the platform default (64 KiB).
12207
+ */
12208
+ memory_max_entry_bytes?: number | null;
11758
12209
  /** Format: uuid */
11759
12210
  id: string;
11760
12211
  name: string;
@@ -32227,6 +32678,189 @@ export interface operations {
32227
32678
  };
32228
32679
  };
32229
32680
  };
32681
+ get_platform_connection_otel_topology: {
32682
+ parameters: {
32683
+ query?: never;
32684
+ header?: never;
32685
+ path: {
32686
+ connection_id: string;
32687
+ };
32688
+ cookie?: never;
32689
+ };
32690
+ requestBody?: never;
32691
+ responses: {
32692
+ /** @description Nodes and edges reachable from the connection's agents */
32693
+ 200: {
32694
+ headers: {
32695
+ [name: string]: unknown;
32696
+ };
32697
+ content: {
32698
+ "application/json": components["schemas"]["OtelTopology"];
32699
+ };
32700
+ };
32701
+ /** @description Unauthenticated */
32702
+ 401: {
32703
+ headers: {
32704
+ [name: string]: unknown;
32705
+ };
32706
+ content?: never;
32707
+ };
32708
+ /** @description Not a plt_ key */
32709
+ 403: {
32710
+ headers: {
32711
+ [name: string]: unknown;
32712
+ };
32713
+ content?: never;
32714
+ };
32715
+ /** @description Connection not found for this app */
32716
+ 404: {
32717
+ headers: {
32718
+ [name: string]: unknown;
32719
+ };
32720
+ content?: never;
32721
+ };
32722
+ };
32723
+ };
32724
+ get_platform_connection_otel_threats: {
32725
+ parameters: {
32726
+ query?: {
32727
+ state?: "open" | "all";
32728
+ };
32729
+ header?: never;
32730
+ path: {
32731
+ connection_id: string;
32732
+ };
32733
+ cookie?: never;
32734
+ };
32735
+ requestBody?: never;
32736
+ responses: {
32737
+ /** @description Threats on the connection's agents, highest blast radius first */
32738
+ 200: {
32739
+ headers: {
32740
+ [name: string]: unknown;
32741
+ };
32742
+ content: {
32743
+ "application/json": components["schemas"]["OtelThreatList"];
32744
+ };
32745
+ };
32746
+ /** @description Unauthenticated */
32747
+ 401: {
32748
+ headers: {
32749
+ [name: string]: unknown;
32750
+ };
32751
+ content?: never;
32752
+ };
32753
+ /** @description Not a plt_ key */
32754
+ 403: {
32755
+ headers: {
32756
+ [name: string]: unknown;
32757
+ };
32758
+ content?: never;
32759
+ };
32760
+ /** @description Connection not found for this app */
32761
+ 404: {
32762
+ headers: {
32763
+ [name: string]: unknown;
32764
+ };
32765
+ content?: never;
32766
+ };
32767
+ };
32768
+ };
32769
+ get_platform_connection_otel_summary: {
32770
+ parameters: {
32771
+ query?: never;
32772
+ header?: never;
32773
+ path: {
32774
+ connection_id: string;
32775
+ };
32776
+ cookie?: never;
32777
+ };
32778
+ requestBody?: never;
32779
+ responses: {
32780
+ /** @description Posture and counts for the connection */
32781
+ 200: {
32782
+ headers: {
32783
+ [name: string]: unknown;
32784
+ };
32785
+ content: {
32786
+ "application/json": components["schemas"]["OtelSummary"];
32787
+ };
32788
+ };
32789
+ /** @description Unauthenticated */
32790
+ 401: {
32791
+ headers: {
32792
+ [name: string]: unknown;
32793
+ };
32794
+ content?: never;
32795
+ };
32796
+ /** @description Not a plt_ key */
32797
+ 403: {
32798
+ headers: {
32799
+ [name: string]: unknown;
32800
+ };
32801
+ content?: never;
32802
+ };
32803
+ /** @description Connection not found for this app */
32804
+ 404: {
32805
+ headers: {
32806
+ [name: string]: unknown;
32807
+ };
32808
+ content?: never;
32809
+ };
32810
+ };
32811
+ };
32812
+ get_platform_connection_otel_stream: {
32813
+ parameters: {
32814
+ query?: never;
32815
+ header?: {
32816
+ "Last-Event-ID"?: string;
32817
+ };
32818
+ path: {
32819
+ connection_id: string;
32820
+ };
32821
+ cookie?: never;
32822
+ };
32823
+ requestBody?: never;
32824
+ responses: {
32825
+ /** @description text/event-stream */
32826
+ 200: {
32827
+ headers: {
32828
+ [name: string]: unknown;
32829
+ };
32830
+ content: {
32831
+ "text/event-stream": string;
32832
+ };
32833
+ };
32834
+ /** @description Unauthenticated */
32835
+ 401: {
32836
+ headers: {
32837
+ [name: string]: unknown;
32838
+ };
32839
+ content?: never;
32840
+ };
32841
+ /** @description Not a plt_ key */
32842
+ 403: {
32843
+ headers: {
32844
+ [name: string]: unknown;
32845
+ };
32846
+ content?: never;
32847
+ };
32848
+ /** @description Connection not found for this app */
32849
+ 404: {
32850
+ headers: {
32851
+ [name: string]: unknown;
32852
+ };
32853
+ content?: never;
32854
+ };
32855
+ /** @description Stream slot cap for this app reached */
32856
+ 429: {
32857
+ headers: {
32858
+ [name: string]: unknown;
32859
+ };
32860
+ content?: never;
32861
+ };
32862
+ };
32863
+ };
32230
32864
  list_connection_resources: {
32231
32865
  parameters: {
32232
32866
  query?: never;
@@ -32653,6 +33287,534 @@ export interface operations {
32653
33287
  };
32654
33288
  };
32655
33289
  };
33290
+ stream_otel_signals: {
33291
+ parameters: {
33292
+ query?: {
33293
+ /** @description Set to `1` to request synthetic data. Available only on deployments with fixtures enabled, or to callers in the platform organization; refused with 403 otherwise. */
33294
+ fixture?: "1" | "true";
33295
+ };
33296
+ header?: {
33297
+ /** @description Resume after this event id. */
33298
+ "Last-Event-ID"?: string;
33299
+ };
33300
+ path?: never;
33301
+ cookie?: never;
33302
+ };
33303
+ requestBody?: never;
33304
+ responses: {
33305
+ /** @description An event stream */
33306
+ 200: {
33307
+ headers: {
33308
+ [name: string]: unknown;
33309
+ };
33310
+ content: {
33311
+ "text/event-stream": string;
33312
+ };
33313
+ };
33314
+ /** @description Unauthenticated */
33315
+ 401: {
33316
+ headers: {
33317
+ [name: string]: unknown;
33318
+ };
33319
+ content?: never;
33320
+ };
33321
+ /** @description Not a human user, or fixtures are not available here */
33322
+ 403: {
33323
+ headers: {
33324
+ [name: string]: unknown;
33325
+ };
33326
+ content?: never;
33327
+ };
33328
+ /** @description Too many concurrent streams for this user */
33329
+ 429: {
33330
+ headers: {
33331
+ [name: string]: unknown;
33332
+ };
33333
+ content?: never;
33334
+ };
33335
+ };
33336
+ };
33337
+ list_otel_threats: {
33338
+ parameters: {
33339
+ query?: {
33340
+ /** @description `open` (default) returns anything not yet resolved; `all` includes resolved. */
33341
+ state?: "open" | "all";
33342
+ };
33343
+ header?: never;
33344
+ path?: never;
33345
+ cookie?: never;
33346
+ };
33347
+ requestBody?: never;
33348
+ responses: {
33349
+ /** @description Threats, highest blast radius first */
33350
+ 200: {
33351
+ headers: {
33352
+ [name: string]: unknown;
33353
+ };
33354
+ content: {
33355
+ "application/json": components["schemas"]["OtelThreatList"];
33356
+ };
33357
+ };
33358
+ /** @description Unauthenticated */
33359
+ 401: {
33360
+ headers: {
33361
+ [name: string]: unknown;
33362
+ };
33363
+ content?: never;
33364
+ };
33365
+ /** @description Not a human user */
33366
+ 403: {
33367
+ headers: {
33368
+ [name: string]: unknown;
33369
+ };
33370
+ content?: never;
33371
+ };
33372
+ };
33373
+ };
33374
+ get_otel_export_config: {
33375
+ parameters: {
33376
+ query?: never;
33377
+ header?: never;
33378
+ path?: never;
33379
+ cookie?: never;
33380
+ };
33381
+ requestBody?: never;
33382
+ responses: {
33383
+ /** @description Current config, or null when unconfigured */
33384
+ 200: {
33385
+ headers: {
33386
+ [name: string]: unknown;
33387
+ };
33388
+ content: {
33389
+ "application/json": {
33390
+ enabled?: boolean;
33391
+ endpoint?: string;
33392
+ header_names?: string[];
33393
+ resource_attributes?: {
33394
+ [key: string]: string;
33395
+ };
33396
+ signal_filter?: ("spans" | "metrics" | "logs")[];
33397
+ } | null;
33398
+ };
33399
+ };
33400
+ /** @description Unauthenticated */
33401
+ 401: {
33402
+ headers: {
33403
+ [name: string]: unknown;
33404
+ };
33405
+ content?: never;
33406
+ };
33407
+ /** @description Requires the Team plan or higher */
33408
+ 402: {
33409
+ headers: {
33410
+ [name: string]: unknown;
33411
+ };
33412
+ content?: never;
33413
+ };
33414
+ /** @description Not an owner or admin */
33415
+ 403: {
33416
+ headers: {
33417
+ [name: string]: unknown;
33418
+ };
33419
+ content?: never;
33420
+ };
33421
+ };
33422
+ };
33423
+ patch_otel_export_config: {
33424
+ parameters: {
33425
+ query?: never;
33426
+ header?: never;
33427
+ path?: never;
33428
+ cookie?: never;
33429
+ };
33430
+ requestBody?: {
33431
+ content: {
33432
+ "application/json": {
33433
+ enabled?: boolean;
33434
+ /**
33435
+ * Format: uri
33436
+ * @description HTTPS only.
33437
+ */
33438
+ endpoint?: string;
33439
+ /** @description Sent on every export request, e.g. an Authorization header. Reserved hop-by-hop names are refused. */
33440
+ headers?: {
33441
+ [key: string]: string;
33442
+ };
33443
+ resource_attributes?: {
33444
+ [key: string]: string;
33445
+ };
33446
+ signal_filter?: ("spans" | "metrics" | "logs")[];
33447
+ };
33448
+ };
33449
+ };
33450
+ responses: {
33451
+ /** @description The updated config, header names only */
33452
+ 200: {
33453
+ headers: {
33454
+ [name: string]: unknown;
33455
+ };
33456
+ content?: never;
33457
+ };
33458
+ /** @description Endpoint refused (scheme */
33459
+ 400: {
33460
+ headers: {
33461
+ [name: string]: unknown;
33462
+ };
33463
+ content?: never;
33464
+ };
33465
+ /** @description Unauthenticated */
33466
+ 401: {
33467
+ headers: {
33468
+ [name: string]: unknown;
33469
+ };
33470
+ content?: never;
33471
+ };
33472
+ /** @description Requires the Team plan or higher */
33473
+ 402: {
33474
+ headers: {
33475
+ [name: string]: unknown;
33476
+ };
33477
+ content?: never;
33478
+ };
33479
+ /** @description Not an owner or admin */
33480
+ 403: {
33481
+ headers: {
33482
+ [name: string]: unknown;
33483
+ };
33484
+ content?: never;
33485
+ };
33486
+ };
33487
+ };
33488
+ test_otel_export: {
33489
+ parameters: {
33490
+ query?: never;
33491
+ header?: never;
33492
+ path?: never;
33493
+ cookie?: never;
33494
+ };
33495
+ requestBody?: never;
33496
+ responses: {
33497
+ /** @description The collector's HTTP status for the probe */
33498
+ 200: {
33499
+ headers: {
33500
+ [name: string]: unknown;
33501
+ };
33502
+ content: {
33503
+ "application/json": {
33504
+ endpoint?: string;
33505
+ status?: number;
33506
+ ok?: boolean;
33507
+ };
33508
+ };
33509
+ };
33510
+ /** @description Not configured */
33511
+ 400: {
33512
+ headers: {
33513
+ [name: string]: unknown;
33514
+ };
33515
+ content?: never;
33516
+ };
33517
+ /** @description Unauthenticated */
33518
+ 401: {
33519
+ headers: {
33520
+ [name: string]: unknown;
33521
+ };
33522
+ content?: never;
33523
+ };
33524
+ /** @description Requires the Team plan or higher */
33525
+ 402: {
33526
+ headers: {
33527
+ [name: string]: unknown;
33528
+ };
33529
+ content?: never;
33530
+ };
33531
+ /** @description Not an owner or admin */
33532
+ 403: {
33533
+ headers: {
33534
+ [name: string]: unknown;
33535
+ };
33536
+ content?: never;
33537
+ };
33538
+ /** @description More than 5 test sends this minute */
33539
+ 429: {
33540
+ headers: {
33541
+ [name: string]: unknown;
33542
+ };
33543
+ content?: never;
33544
+ };
33545
+ };
33546
+ };
33547
+ get_otel_metrics: {
33548
+ parameters: {
33549
+ query?: {
33550
+ /** @description Lookback, e.g. `30m`, `24h`, `7d`. Default 24h, maximum 30d. */
33551
+ window?: string;
33552
+ /** @description Bucket width. Defaults to a twenty-fourth of the window, minimum 60s. */
33553
+ step?: string;
33554
+ };
33555
+ header?: never;
33556
+ path?: never;
33557
+ cookie?: never;
33558
+ };
33559
+ requestBody?: never;
33560
+ responses: {
33561
+ /** @description Bucketed metrics */
33562
+ 200: {
33563
+ headers: {
33564
+ [name: string]: unknown;
33565
+ };
33566
+ content: {
33567
+ "application/json": {
33568
+ /** @description The window and step actually used. */
33569
+ window: {
33570
+ window_secs?: number;
33571
+ step_secs?: number;
33572
+ };
33573
+ buckets: {
33574
+ /** Format: date-time */
33575
+ t: string;
33576
+ executions: number;
33577
+ denials: number;
33578
+ transactions: number;
33579
+ llm_calls: number;
33580
+ }[];
33581
+ /** @description Null when nothing in the window recorded a duration. */
33582
+ latency_p50_ms?: number | null;
33583
+ latency_p95_ms?: number | null;
33584
+ total_executions: number;
33585
+ total_denials: number;
33586
+ };
33587
+ };
33588
+ };
33589
+ /** @description Unparseable window or step, window over 30d, or step larger than window */
33590
+ 400: {
33591
+ headers: {
33592
+ [name: string]: unknown;
33593
+ };
33594
+ content?: never;
33595
+ };
33596
+ /** @description Unauthenticated */
33597
+ 401: {
33598
+ headers: {
33599
+ [name: string]: unknown;
33600
+ };
33601
+ content?: never;
33602
+ };
33603
+ /** @description Not a human user */
33604
+ 403: {
33605
+ headers: {
33606
+ [name: string]: unknown;
33607
+ };
33608
+ content?: never;
33609
+ };
33610
+ };
33611
+ };
33612
+ get_otel_agent_trust: {
33613
+ parameters: {
33614
+ query?: never;
33615
+ header?: never;
33616
+ path: {
33617
+ agent_id: string;
33618
+ };
33619
+ cookie?: never;
33620
+ };
33621
+ requestBody?: never;
33622
+ responses: {
33623
+ /** @description Current score, components, history, recent actions */
33624
+ 200: {
33625
+ headers: {
33626
+ [name: string]: unknown;
33627
+ };
33628
+ content: {
33629
+ "application/json": {
33630
+ /** Format: uuid */
33631
+ agent_id: string;
33632
+ score?: number | null;
33633
+ /** @description True while the engine is recommend-only or the agent is unscored. */
33634
+ shadow: boolean;
33635
+ /** Format: date-time */
33636
+ updated_at?: string | null;
33637
+ /** @description 0-100 per component; null means no source in this deployment. */
33638
+ components: {
33639
+ denial_rate?: number | null;
33640
+ threat_hits?: number | null;
33641
+ egress_blocks?: number | null;
33642
+ spend_velocity?: number | null;
33643
+ off_hours?: number | null;
33644
+ consensus_bypass?: number | null;
33645
+ };
33646
+ /** @description Oldest first, last 24 hours. */
33647
+ history: {
33648
+ /** Format: date-time */
33649
+ at: string;
33650
+ score: number;
33651
+ }[];
33652
+ /** @description Newest first. */
33653
+ recent: {
33654
+ /** Format: date-time */
33655
+ at: string;
33656
+ action: string;
33657
+ resource_type?: string | null;
33658
+ }[];
33659
+ };
33660
+ };
33661
+ };
33662
+ /** @description Unauthenticated */
33663
+ 401: {
33664
+ headers: {
33665
+ [name: string]: unknown;
33666
+ };
33667
+ content?: never;
33668
+ };
33669
+ /** @description Not a human user */
33670
+ 403: {
33671
+ headers: {
33672
+ [name: string]: unknown;
33673
+ };
33674
+ content?: never;
33675
+ };
33676
+ /** @description No such agent in the caller's organization */
33677
+ 404: {
33678
+ headers: {
33679
+ [name: string]: unknown;
33680
+ };
33681
+ content?: never;
33682
+ };
33683
+ };
33684
+ };
33685
+ get_otel_flows: {
33686
+ parameters: {
33687
+ query?: {
33688
+ /** @description Lookback, e.g. `1h`, `24h`, `7d`. Default 24h, maximum 30d. */
33689
+ window?: string;
33690
+ };
33691
+ header?: never;
33692
+ path?: never;
33693
+ cookie?: never;
33694
+ };
33695
+ requestBody?: never;
33696
+ responses: {
33697
+ /** @description Read flows, highest first */
33698
+ 200: {
33699
+ headers: {
33700
+ [name: string]: unknown;
33701
+ };
33702
+ content: {
33703
+ "application/json": {
33704
+ window: {
33705
+ window_secs?: number;
33706
+ step_secs?: number;
33707
+ };
33708
+ edges: {
33709
+ /** Format: uuid */
33710
+ agent_id: string;
33711
+ agent_name: string;
33712
+ /** Format: uuid */
33713
+ vault_id: string;
33714
+ vault_name: string;
33715
+ /** @description secret.read events in the window. */
33716
+ reads: number;
33717
+ /** @description Distinct secret paths touched. */
33718
+ distinct_paths: number;
33719
+ }[];
33720
+ total_reads: number;
33721
+ };
33722
+ };
33723
+ };
33724
+ /** @description Unparseable window or window over 30d */
33725
+ 400: {
33726
+ headers: {
33727
+ [name: string]: unknown;
33728
+ };
33729
+ content?: never;
33730
+ };
33731
+ /** @description Unauthenticated */
33732
+ 401: {
33733
+ headers: {
33734
+ [name: string]: unknown;
33735
+ };
33736
+ content?: never;
33737
+ };
33738
+ /** @description Not a human user */
33739
+ 403: {
33740
+ headers: {
33741
+ [name: string]: unknown;
33742
+ };
33743
+ content?: never;
33744
+ };
33745
+ };
33746
+ };
33747
+ get_otel_summary: {
33748
+ parameters: {
33749
+ query?: never;
33750
+ header?: never;
33751
+ path?: never;
33752
+ cookie?: never;
33753
+ };
33754
+ requestBody?: never;
33755
+ responses: {
33756
+ /** @description Posture summary */
33757
+ 200: {
33758
+ headers: {
33759
+ [name: string]: unknown;
33760
+ };
33761
+ content: {
33762
+ "application/json": components["schemas"]["OtelSummary"];
33763
+ };
33764
+ };
33765
+ /** @description Unauthenticated */
33766
+ 401: {
33767
+ headers: {
33768
+ [name: string]: unknown;
33769
+ };
33770
+ content?: never;
33771
+ };
33772
+ /** @description Not a human user */
33773
+ 403: {
33774
+ headers: {
33775
+ [name: string]: unknown;
33776
+ };
33777
+ content?: never;
33778
+ };
33779
+ };
33780
+ };
33781
+ get_otel_topology: {
33782
+ parameters: {
33783
+ query?: {
33784
+ /** @description Set to `1` to request a synthetic graph. Same gating as the stream endpoint. A fixture response carries `fixture: true`. */
33785
+ fixture?: "1" | "true";
33786
+ };
33787
+ header?: never;
33788
+ path?: never;
33789
+ cookie?: never;
33790
+ };
33791
+ requestBody?: never;
33792
+ responses: {
33793
+ /** @description Topology snapshot */
33794
+ 200: {
33795
+ headers: {
33796
+ [name: string]: unknown;
33797
+ };
33798
+ content: {
33799
+ "application/json": components["schemas"]["OtelTopology"];
33800
+ };
33801
+ };
33802
+ /** @description Unauthenticated */
33803
+ 401: {
33804
+ headers: {
33805
+ [name: string]: unknown;
33806
+ };
33807
+ content?: never;
33808
+ };
33809
+ /** @description Not a human user, or fixtures are not available here */
33810
+ 403: {
33811
+ headers: {
33812
+ [name: string]: unknown;
33813
+ };
33814
+ content?: never;
33815
+ };
33816
+ };
33817
+ };
32656
33818
  stream_runtime_logs: {
32657
33819
  parameters: {
32658
33820
  query?: never;