@1claw/openapi-spec 0.61.35 → 0.61.38

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.
Files changed (3) hide show
  1. package/openapi.json +448 -1
  2. package/openapi.yaml +309 -1
  3. package/package.json +1 -1
package/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "1Claw API",
5
- "version": "0.61.35",
5
+ "version": "0.61.38",
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. Automations (workflow_spec,\nwebhook tokens, event triggers, Assist), cloud runtimes with\ninteractive shell sessions, agent memory, and discovery.\n\n## Domains\n\n`api.1claw.co` is canonical: it is the OIDC issuer, the `aud` the API\nmints, and the first entry in `servers` — a generated client takes its\nbase URL from there, and the previous ordering pointed every SDK at the\ndomain the issuer had already left. `api.1claw.xyz` still answers and is\nstill accepted on token validation, because tokens minted before the\nmove carry it; it is never minted now.\n\nOne deliberate exception: the Shroud attestation identity token is\nrequested from GCP with `audience: https://api.1claw.xyz`, so\n`/v1/shroud/attestation` reports that as its `expected_audience`. That\nis accurate rather than stale — the audience is a verification contract\nwith anyone already checking the token, and moving it is a breaking\nchange for them, not a rename.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
7
7
  "contact": {
8
8
  "email": "ops@1claw.co"
@@ -6610,6 +6610,46 @@
6610
6610
  }
6611
6611
  }
6612
6612
  },
6613
+ "/v1/org/overview": {
6614
+ "get": {
6615
+ "tags": [
6616
+ "Organization"
6617
+ ],
6618
+ "summary": "System overview",
6619
+ "operationId": "getOrgOverview",
6620
+ "description": "The whole org in one call: inventory (vaults, secrets, agents, runtimes,\nautomations, bindings, policies, wallets, apps, members), activity in the last\n`hours` (secret reads/writes, denials, executions, transactions, Shroud\nrequests/blocked/redacted/injections, automation runs, approvals, consensus,\nrisk events, API requests), spend (inference, executions, automations, credit\nbalance), health (expiring secrets, stale/suspended/unpoliced agents, failing\nautomations, errored runtimes, overdue approvals) and a 7-day trend. Human and\nplatform callers only. Backs the dashboard's Overview tab.\n",
6621
+ "parameters": [
6622
+ {
6623
+ "name": "hours",
6624
+ "in": "query",
6625
+ "schema": {
6626
+ "type": "integer",
6627
+ "minimum": 1,
6628
+ "maximum": 168,
6629
+ "default": 24
6630
+ }
6631
+ }
6632
+ ],
6633
+ "responses": {
6634
+ "200": {
6635
+ "description": "Overview",
6636
+ "content": {
6637
+ "application/json": {
6638
+ "schema": {
6639
+ "$ref": "#/components/schemas/OrgOverview"
6640
+ }
6641
+ }
6642
+ }
6643
+ },
6644
+ "401": {
6645
+ "$ref": "#/components/responses/Unauthorized"
6646
+ },
6647
+ "403": {
6648
+ "$ref": "#/components/responses/Forbidden"
6649
+ }
6650
+ }
6651
+ }
6652
+ },
6613
6653
  "/v1/org/members": {
6614
6654
  "get": {
6615
6655
  "tags": [
@@ -19356,6 +19396,159 @@
19356
19396
  }
19357
19397
  }
19358
19398
  },
19399
+ "/v1/automations/dry-run": {
19400
+ "post": {
19401
+ "tags": [
19402
+ "Automations"
19403
+ ],
19404
+ "summary": "Preview an unsaved workflow spec",
19405
+ "operationId": "dryRunAutomationSpec",
19406
+ "description": "What a run would do, with nothing done: every step after template substitution\nagainst a simulated context, its side effect, its `on_error` policy, templates\nthat would resolve to nothing, conditions, and the budget it would hit. Step\noutputs are placeholders, so later steps' `{{steps.N.output…}}` show empty here.\n",
19407
+ "requestBody": {
19408
+ "required": true,
19409
+ "content": {
19410
+ "application/json": {
19411
+ "schema": {
19412
+ "$ref": "#/components/schemas/DryRunRequest"
19413
+ }
19414
+ }
19415
+ }
19416
+ },
19417
+ "responses": {
19418
+ "200": {
19419
+ "description": "Preview",
19420
+ "content": {
19421
+ "application/json": {
19422
+ "schema": {
19423
+ "$ref": "#/components/schemas/DryRunResponse"
19424
+ }
19425
+ }
19426
+ }
19427
+ },
19428
+ "401": {
19429
+ "$ref": "#/components/responses/Unauthorized"
19430
+ }
19431
+ }
19432
+ }
19433
+ },
19434
+ "/v1/automations/{automationId}/dry-run": {
19435
+ "post": {
19436
+ "tags": [
19437
+ "Automations"
19438
+ ],
19439
+ "summary": "Preview a run of this automation",
19440
+ "operationId": "dryRunAutomation",
19441
+ "description": "Same as the unsaved preview, defaulting to the automation's current spec.",
19442
+ "parameters": [
19443
+ {
19444
+ "name": "automationId",
19445
+ "in": "path",
19446
+ "required": true,
19447
+ "schema": {
19448
+ "type": "string",
19449
+ "format": "uuid"
19450
+ }
19451
+ }
19452
+ ],
19453
+ "requestBody": {
19454
+ "required": false,
19455
+ "content": {
19456
+ "application/json": {
19457
+ "schema": {
19458
+ "$ref": "#/components/schemas/DryRunRequest"
19459
+ }
19460
+ }
19461
+ }
19462
+ },
19463
+ "responses": {
19464
+ "200": {
19465
+ "description": "Preview",
19466
+ "content": {
19467
+ "application/json": {
19468
+ "schema": {
19469
+ "$ref": "#/components/schemas/DryRunResponse"
19470
+ }
19471
+ }
19472
+ }
19473
+ },
19474
+ "401": {
19475
+ "$ref": "#/components/responses/Unauthorized"
19476
+ },
19477
+ "404": {
19478
+ "$ref": "#/components/responses/NotFound"
19479
+ }
19480
+ }
19481
+ }
19482
+ },
19483
+ "/v1/automations/{automationId}/runs/{runId}/rerun": {
19484
+ "post": {
19485
+ "tags": [
19486
+ "Automations"
19487
+ ],
19488
+ "summary": "Re-run from a step",
19489
+ "operationId": "rerunAutomationFromStep",
19490
+ "description": "Start a new run seeded with this run's results up to `from_step` and continue from\nthere, on the spec version the original run executed. Human-only; the original\nrun must be finished. The new run has `trigger_source: rerun` and `parent_run_id`.\n",
19491
+ "parameters": [
19492
+ {
19493
+ "name": "automationId",
19494
+ "in": "path",
19495
+ "required": true,
19496
+ "schema": {
19497
+ "type": "string",
19498
+ "format": "uuid"
19499
+ }
19500
+ },
19501
+ {
19502
+ "name": "runId",
19503
+ "in": "path",
19504
+ "required": true,
19505
+ "schema": {
19506
+ "type": "string",
19507
+ "format": "uuid"
19508
+ }
19509
+ }
19510
+ ],
19511
+ "requestBody": {
19512
+ "required": false,
19513
+ "content": {
19514
+ "application/json": {
19515
+ "schema": {
19516
+ "type": "object",
19517
+ "properties": {
19518
+ "from_step": {
19519
+ "type": "integer",
19520
+ "minimum": 0,
19521
+ "default": 0,
19522
+ "description": "Zero-based step index to start from."
19523
+ }
19524
+ }
19525
+ }
19526
+ }
19527
+ }
19528
+ },
19529
+ "responses": {
19530
+ "201": {
19531
+ "description": "The new run",
19532
+ "content": {
19533
+ "application/json": {
19534
+ "schema": {
19535
+ "$ref": "#/components/schemas/AutomationRunResponse"
19536
+ }
19537
+ }
19538
+ }
19539
+ },
19540
+ "400": {
19541
+ "$ref": "#/components/responses/BadRequest"
19542
+ },
19543
+ "401": {
19544
+ "$ref": "#/components/responses/Unauthorized"
19545
+ },
19546
+ "404": {
19547
+ "$ref": "#/components/responses/NotFound"
19548
+ }
19549
+ }
19550
+ }
19551
+ },
19359
19552
  "/v1/automations/{automationId}/versions": {
19360
19553
  "get": {
19361
19554
  "tags": [
@@ -43200,6 +43393,222 @@
43200
43393
  }
43201
43394
  }
43202
43395
  },
43396
+ "OrgOverview": {
43397
+ "type": "object",
43398
+ "required": [
43399
+ "generated_at",
43400
+ "window_hours",
43401
+ "inventory",
43402
+ "activity",
43403
+ "spend",
43404
+ "health",
43405
+ "trend"
43406
+ ],
43407
+ "properties": {
43408
+ "generated_at": {
43409
+ "type": "string",
43410
+ "format": "date-time"
43411
+ },
43412
+ "window_hours": {
43413
+ "type": "integer"
43414
+ },
43415
+ "inventory": {
43416
+ "type": "object",
43417
+ "additionalProperties": {
43418
+ "type": "integer"
43419
+ },
43420
+ "description": "vaults, secrets, agents_total, agents_active, child_agents, runtimes_total, runtimes_running, automations_total, automations_active, bindings, policies, treasury_wallets, signing_keys, platform_apps, connected_apps, team_members"
43421
+ },
43422
+ "activity": {
43423
+ "type": "object",
43424
+ "additionalProperties": {
43425
+ "type": "integer"
43426
+ },
43427
+ "description": "audit_events, secret_reads, secret_writes, policy_denials, executions, execution_failures, transactions, transactions_failed, shroud_requests, shroud_blocked, shroud_redacted, shroud_injections, automation_runs, automation_runs_failed, automation_runs_parked, approvals_pending, approvals_decided, consensus_pending, risk_events, threats_open, api_requests"
43428
+ },
43429
+ "spend": {
43430
+ "type": "object",
43431
+ "properties": {
43432
+ "inference_usd": {
43433
+ "type": "number"
43434
+ },
43435
+ "inference_tokens": {
43436
+ "type": "integer"
43437
+ },
43438
+ "execution_cost_cents": {
43439
+ "type": "integer"
43440
+ },
43441
+ "automation_cost_cents": {
43442
+ "type": "integer"
43443
+ },
43444
+ "credit_balance_micro_usd": {
43445
+ "type": "integer"
43446
+ },
43447
+ "billing_tier": {
43448
+ "type": "string"
43449
+ }
43450
+ }
43451
+ },
43452
+ "health": {
43453
+ "type": "object",
43454
+ "additionalProperties": {
43455
+ "type": "integer"
43456
+ },
43457
+ "description": "secrets_expiring_7d, stale_agents, agents_without_policy, automations_failing, runtimes_errored, approvals_overdue, agents_suspended"
43458
+ },
43459
+ "trend": {
43460
+ "type": "array",
43461
+ "items": {
43462
+ "type": "object",
43463
+ "properties": {
43464
+ "day": {
43465
+ "type": "string",
43466
+ "format": "date"
43467
+ },
43468
+ "audit_events": {
43469
+ "type": "integer"
43470
+ },
43471
+ "denials": {
43472
+ "type": "integer"
43473
+ },
43474
+ "shroud_requests": {
43475
+ "type": "integer"
43476
+ },
43477
+ "shroud_blocked": {
43478
+ "type": "integer"
43479
+ },
43480
+ "automation_runs": {
43481
+ "type": "integer"
43482
+ },
43483
+ "transactions": {
43484
+ "type": "integer"
43485
+ }
43486
+ }
43487
+ }
43488
+ }
43489
+ }
43490
+ },
43491
+ "DryRunRequest": {
43492
+ "type": "object",
43493
+ "properties": {
43494
+ "workflow_spec": {
43495
+ "description": "Spec to preview (required on the unsaved-spec route).",
43496
+ "oneOf": [
43497
+ {
43498
+ "type": "array",
43499
+ "items": {
43500
+ "type": "object",
43501
+ "additionalProperties": true
43502
+ }
43503
+ },
43504
+ {
43505
+ "type": "object",
43506
+ "additionalProperties": true
43507
+ }
43508
+ ]
43509
+ },
43510
+ "input": {
43511
+ "type": "object",
43512
+ "additionalProperties": true,
43513
+ "description": "Simulated trigger payload (`{{trigger.*}}`)."
43514
+ }
43515
+ }
43516
+ },
43517
+ "DryRunResponse": {
43518
+ "type": "object",
43519
+ "required": [
43520
+ "ok"
43521
+ ],
43522
+ "properties": {
43523
+ "ok": {
43524
+ "type": "boolean",
43525
+ "description": "True when there are no warnings."
43526
+ },
43527
+ "error": {
43528
+ "type": "string"
43529
+ },
43530
+ "warnings": {
43531
+ "type": "array",
43532
+ "items": {
43533
+ "type": "string"
43534
+ }
43535
+ },
43536
+ "parks": {
43537
+ "type": "integer",
43538
+ "description": "How many steps park the run."
43539
+ },
43540
+ "budget": {
43541
+ "type": "object",
43542
+ "additionalProperties": true
43543
+ },
43544
+ "steps": {
43545
+ "type": "array",
43546
+ "items": {
43547
+ "type": "object",
43548
+ "required": [
43549
+ "index",
43550
+ "type",
43551
+ "known",
43552
+ "resolved",
43553
+ "effect",
43554
+ "on_error",
43555
+ "unresolved_templates"
43556
+ ],
43557
+ "properties": {
43558
+ "index": {
43559
+ "type": "integer"
43560
+ },
43561
+ "name": {
43562
+ "type": "string",
43563
+ "nullable": true
43564
+ },
43565
+ "type": {
43566
+ "type": "string"
43567
+ },
43568
+ "known": {
43569
+ "type": "boolean"
43570
+ },
43571
+ "resolved": {
43572
+ "type": "object",
43573
+ "additionalProperties": true,
43574
+ "description": "The step after template substitution."
43575
+ },
43576
+ "skipped_by": {
43577
+ "type": "string",
43578
+ "nullable": true
43579
+ },
43580
+ "effect": {
43581
+ "type": "string"
43582
+ },
43583
+ "on_error": {
43584
+ "type": "object",
43585
+ "properties": {
43586
+ "action": {
43587
+ "type": "string"
43588
+ },
43589
+ "max_attempts": {
43590
+ "type": "integer"
43591
+ },
43592
+ "backoff_secs": {
43593
+ "type": "integer"
43594
+ }
43595
+ }
43596
+ },
43597
+ "unresolved_templates": {
43598
+ "type": "array",
43599
+ "items": {
43600
+ "type": "string"
43601
+ }
43602
+ },
43603
+ "budget_exceeded": {
43604
+ "type": "string",
43605
+ "nullable": true
43606
+ }
43607
+ }
43608
+ }
43609
+ }
43610
+ }
43611
+ },
43203
43612
  "TriggerAutomationRequest": {
43204
43613
  "type": "object",
43205
43614
  "properties": {
@@ -43713,6 +44122,24 @@
43713
44122
  "UpdateRuntimeRequest": {
43714
44123
  "type": "object",
43715
44124
  "properties": {
44125
+ "schedule": {
44126
+ "nullable": true,
44127
+ "description": "Scheduled start/stop: start the container when `start_cron` fires (IANA\n`timezone`, default UTC) and stop it `stop_after_secs` later (60–86400; null\nleaves it to the idle reconciler). `null` clears the schedule.\n",
44128
+ "type": "object",
44129
+ "properties": {
44130
+ "start_cron": {
44131
+ "type": "string"
44132
+ },
44133
+ "timezone": {
44134
+ "type": "string",
44135
+ "default": "UTC"
44136
+ },
44137
+ "stop_after_secs": {
44138
+ "type": "integer",
44139
+ "nullable": true
44140
+ }
44141
+ }
44142
+ },
43716
44143
  "name": {
43717
44144
  "type": "string"
43718
44145
  },
@@ -43777,6 +44204,26 @@
43777
44204
  "updated_at"
43778
44205
  ],
43779
44206
  "properties": {
44207
+ "image_digest": {
44208
+ "type": "string",
44209
+ "nullable": true,
44210
+ "description": "Resolved image (digest form when the provider reports one); runtime-minted agent tokens carry it as `runtime_image`, which access policies can require via `conditions.runtime_image_in`."
44211
+ },
44212
+ "schedule": {
44213
+ "type": "object",
44214
+ "nullable": true,
44215
+ "additionalProperties": true
44216
+ },
44217
+ "next_scheduled_start_at": {
44218
+ "type": "string",
44219
+ "format": "date-time",
44220
+ "nullable": true
44221
+ },
44222
+ "scheduled_stop_at": {
44223
+ "type": "string",
44224
+ "format": "date-time",
44225
+ "nullable": true
44226
+ },
43780
44227
  "id": {
43781
44228
  "type": "string",
43782
44229
  "format": "uuid"
package/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
 
3
3
  info:
4
4
  title: 1Claw API
5
- version: "0.61.35"
5
+ version: "0.61.38"
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -4282,6 +4282,40 @@ paths:
4282
4282
  # Organization
4283
4283
  # ---------------------------------------------------------------------------
4284
4284
 
4285
+ /v1/org/overview:
4286
+ get:
4287
+ tags: [Organization]
4288
+ summary: System overview
4289
+ operationId: getOrgOverview
4290
+ description: |
4291
+ The whole org in one call: inventory (vaults, secrets, agents, runtimes,
4292
+ automations, bindings, policies, wallets, apps, members), activity in the last
4293
+ `hours` (secret reads/writes, denials, executions, transactions, Shroud
4294
+ requests/blocked/redacted/injections, automation runs, approvals, consensus,
4295
+ risk events, API requests), spend (inference, executions, automations, credit
4296
+ balance), health (expiring secrets, stale/suspended/unpoliced agents, failing
4297
+ automations, errored runtimes, overdue approvals) and a 7-day trend. Human and
4298
+ platform callers only. Backs the dashboard's Overview tab.
4299
+ parameters:
4300
+ - name: hours
4301
+ in: query
4302
+ schema:
4303
+ type: integer
4304
+ minimum: 1
4305
+ maximum: 168
4306
+ default: 24
4307
+ responses:
4308
+ "200":
4309
+ description: Overview
4310
+ content:
4311
+ application/json:
4312
+ schema:
4313
+ $ref: "#/components/schemas/OrgOverview"
4314
+ "401":
4315
+ $ref: "#/components/responses/Unauthorized"
4316
+ "403":
4317
+ $ref: "#/components/responses/Forbidden"
4318
+
4285
4319
  /v1/org/members:
4286
4320
  get:
4287
4321
  tags: [Organization]
@@ -12338,6 +12372,111 @@ paths:
12338
12372
  "409":
12339
12373
  $ref: "#/components/responses/Conflict"
12340
12374
 
12375
+ /v1/automations/dry-run:
12376
+ post:
12377
+ tags: [Automations]
12378
+ summary: Preview an unsaved workflow spec
12379
+ operationId: dryRunAutomationSpec
12380
+ description: |
12381
+ What a run would do, with nothing done: every step after template substitution
12382
+ against a simulated context, its side effect, its `on_error` policy, templates
12383
+ that would resolve to nothing, conditions, and the budget it would hit. Step
12384
+ outputs are placeholders, so later steps' `{{steps.N.output…}}` show empty here.
12385
+ requestBody:
12386
+ required: true
12387
+ content:
12388
+ application/json:
12389
+ schema:
12390
+ $ref: "#/components/schemas/DryRunRequest"
12391
+ responses:
12392
+ "200":
12393
+ description: Preview
12394
+ content:
12395
+ application/json:
12396
+ schema:
12397
+ $ref: "#/components/schemas/DryRunResponse"
12398
+ "401":
12399
+ $ref: "#/components/responses/Unauthorized"
12400
+
12401
+ /v1/automations/{automationId}/dry-run:
12402
+ post:
12403
+ tags: [Automations]
12404
+ summary: Preview a run of this automation
12405
+ operationId: dryRunAutomation
12406
+ description: Same as the unsaved preview, defaulting to the automation's current spec.
12407
+ parameters:
12408
+ - name: automationId
12409
+ in: path
12410
+ required: true
12411
+ schema:
12412
+ type: string
12413
+ format: uuid
12414
+ requestBody:
12415
+ required: false
12416
+ content:
12417
+ application/json:
12418
+ schema:
12419
+ $ref: "#/components/schemas/DryRunRequest"
12420
+ responses:
12421
+ "200":
12422
+ description: Preview
12423
+ content:
12424
+ application/json:
12425
+ schema:
12426
+ $ref: "#/components/schemas/DryRunResponse"
12427
+ "401":
12428
+ $ref: "#/components/responses/Unauthorized"
12429
+ "404":
12430
+ $ref: "#/components/responses/NotFound"
12431
+
12432
+ /v1/automations/{automationId}/runs/{runId}/rerun:
12433
+ post:
12434
+ tags: [Automations]
12435
+ summary: Re-run from a step
12436
+ operationId: rerunAutomationFromStep
12437
+ description: |
12438
+ Start a new run seeded with this run's results up to `from_step` and continue from
12439
+ there, on the spec version the original run executed. Human-only; the original
12440
+ run must be finished. The new run has `trigger_source: rerun` and `parent_run_id`.
12441
+ parameters:
12442
+ - name: automationId
12443
+ in: path
12444
+ required: true
12445
+ schema:
12446
+ type: string
12447
+ format: uuid
12448
+ - name: runId
12449
+ in: path
12450
+ required: true
12451
+ schema:
12452
+ type: string
12453
+ format: uuid
12454
+ requestBody:
12455
+ required: false
12456
+ content:
12457
+ application/json:
12458
+ schema:
12459
+ type: object
12460
+ properties:
12461
+ from_step:
12462
+ type: integer
12463
+ minimum: 0
12464
+ default: 0
12465
+ description: Zero-based step index to start from.
12466
+ responses:
12467
+ "201":
12468
+ description: The new run
12469
+ content:
12470
+ application/json:
12471
+ schema:
12472
+ $ref: "#/components/schemas/AutomationRunResponse"
12473
+ "400":
12474
+ $ref: "#/components/responses/BadRequest"
12475
+ "401":
12476
+ $ref: "#/components/responses/Unauthorized"
12477
+ "404":
12478
+ $ref: "#/components/responses/NotFound"
12479
+
12341
12480
  /v1/automations/{automationId}/versions:
12342
12481
  get:
12343
12482
  tags: [Automations]
@@ -27956,6 +28095,143 @@ components:
27956
28095
  format: uuid
27957
28096
  description: Control-plane approval when rolling back to a wider spec.
27958
28097
 
28098
+ OrgOverview:
28099
+ type: object
28100
+ required: [generated_at, window_hours, inventory, activity, spend, health, trend]
28101
+ properties:
28102
+ generated_at:
28103
+ type: string
28104
+ format: date-time
28105
+ window_hours:
28106
+ type: integer
28107
+ inventory:
28108
+ type: object
28109
+ additionalProperties:
28110
+ type: integer
28111
+ description: vaults, secrets, agents_total, agents_active, child_agents, runtimes_total, runtimes_running, automations_total, automations_active, bindings, policies, treasury_wallets, signing_keys, platform_apps, connected_apps, team_members
28112
+ activity:
28113
+ type: object
28114
+ additionalProperties:
28115
+ type: integer
28116
+ description: audit_events, secret_reads, secret_writes, policy_denials, executions, execution_failures, transactions, transactions_failed, shroud_requests, shroud_blocked, shroud_redacted, shroud_injections, automation_runs, automation_runs_failed, automation_runs_parked, approvals_pending, approvals_decided, consensus_pending, risk_events, threats_open, api_requests
28117
+ spend:
28118
+ type: object
28119
+ properties:
28120
+ inference_usd:
28121
+ type: number
28122
+ inference_tokens:
28123
+ type: integer
28124
+ execution_cost_cents:
28125
+ type: integer
28126
+ automation_cost_cents:
28127
+ type: integer
28128
+ credit_balance_micro_usd:
28129
+ type: integer
28130
+ billing_tier:
28131
+ type: string
28132
+ health:
28133
+ type: object
28134
+ additionalProperties:
28135
+ type: integer
28136
+ description: secrets_expiring_7d, stale_agents, agents_without_policy, automations_failing, runtimes_errored, approvals_overdue, agents_suspended
28137
+ trend:
28138
+ type: array
28139
+ items:
28140
+ type: object
28141
+ properties:
28142
+ day:
28143
+ type: string
28144
+ format: date
28145
+ audit_events:
28146
+ type: integer
28147
+ denials:
28148
+ type: integer
28149
+ shroud_requests:
28150
+ type: integer
28151
+ shroud_blocked:
28152
+ type: integer
28153
+ automation_runs:
28154
+ type: integer
28155
+ transactions:
28156
+ type: integer
28157
+
28158
+ DryRunRequest:
28159
+ type: object
28160
+ properties:
28161
+ workflow_spec:
28162
+ description: Spec to preview (required on the unsaved-spec route).
28163
+ oneOf:
28164
+ - type: array
28165
+ items:
28166
+ type: object
28167
+ additionalProperties: true
28168
+ - type: object
28169
+ additionalProperties: true
28170
+ input:
28171
+ type: object
28172
+ additionalProperties: true
28173
+ description: Simulated trigger payload (`{{trigger.*}}`).
28174
+
28175
+ DryRunResponse:
28176
+ type: object
28177
+ required: [ok]
28178
+ properties:
28179
+ ok:
28180
+ type: boolean
28181
+ description: True when there are no warnings.
28182
+ error:
28183
+ type: string
28184
+ warnings:
28185
+ type: array
28186
+ items:
28187
+ type: string
28188
+ parks:
28189
+ type: integer
28190
+ description: How many steps park the run.
28191
+ budget:
28192
+ type: object
28193
+ additionalProperties: true
28194
+ steps:
28195
+ type: array
28196
+ items:
28197
+ type: object
28198
+ required: [index, type, known, resolved, effect, on_error, unresolved_templates]
28199
+ properties:
28200
+ index:
28201
+ type: integer
28202
+ name:
28203
+ type: string
28204
+ nullable: true
28205
+ type:
28206
+ type: string
28207
+ known:
28208
+ type: boolean
28209
+ resolved:
28210
+ type: object
28211
+ additionalProperties: true
28212
+ description: The step after template substitution.
28213
+ skipped_by:
28214
+ type: string
28215
+ nullable: true
28216
+ effect:
28217
+ type: string
28218
+ on_error:
28219
+ type: object
28220
+ properties:
28221
+ action:
28222
+ type: string
28223
+ max_attempts:
28224
+ type: integer
28225
+ backoff_secs:
28226
+ type: integer
28227
+ unresolved_templates:
28228
+ type: array
28229
+ items:
28230
+ type: string
28231
+ budget_exceeded:
28232
+ type: string
28233
+ nullable: true
28234
+
27959
28235
  TriggerAutomationRequest:
27960
28236
  type: object
27961
28237
  properties:
@@ -28293,6 +28569,22 @@ components:
28293
28569
  UpdateRuntimeRequest:
28294
28570
  type: object
28295
28571
  properties:
28572
+ schedule:
28573
+ nullable: true
28574
+ description: |
28575
+ Scheduled start/stop: start the container when `start_cron` fires (IANA
28576
+ `timezone`, default UTC) and stop it `stop_after_secs` later (60–86400; null
28577
+ leaves it to the idle reconciler). `null` clears the schedule.
28578
+ type: object
28579
+ properties:
28580
+ start_cron:
28581
+ type: string
28582
+ timezone:
28583
+ type: string
28584
+ default: UTC
28585
+ stop_after_secs:
28586
+ type: integer
28587
+ nullable: true
28296
28588
  name:
28297
28589
  type: string
28298
28590
  template:
@@ -28330,6 +28622,22 @@ components:
28330
28622
  type: object
28331
28623
  required: [id, name, agent_id, status, created_at, updated_at]
28332
28624
  properties:
28625
+ image_digest:
28626
+ type: string
28627
+ nullable: true
28628
+ description: Resolved image (digest form when the provider reports one); runtime-minted agent tokens carry it as `runtime_image`, which access policies can require via `conditions.runtime_image_in`.
28629
+ schedule:
28630
+ type: object
28631
+ nullable: true
28632
+ additionalProperties: true
28633
+ next_scheduled_start_at:
28634
+ type: string
28635
+ format: date-time
28636
+ nullable: true
28637
+ scheduled_stop_at:
28638
+ type: string
28639
+ format: date-time
28640
+ nullable: true
28333
28641
  id:
28334
28642
  type: string
28335
28643
  format: uuid
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.61.35",
3
+ "version": "0.61.38",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API \u2014 generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {