@1claw/openapi-spec 0.61.38 → 0.61.39

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 +253 -1
  2. package/openapi.yaml +171 -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.38",
5
+ "version": "0.61.39",
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"
@@ -29653,6 +29653,254 @@
29653
29653
  }
29654
29654
  }
29655
29655
  },
29656
+ "/v1/runtimes/provision": {
29657
+ "post": {
29658
+ "tags": [
29659
+ "Runtimes"
29660
+ ],
29661
+ "summary": "Provision an agent and its runtime in one call",
29662
+ "operationId": "provisionRuntime",
29663
+ "description": "Creates (or reuses) the agent, its keys and default-vault grant, the runtime, and\nstarts it. Each step runs the same code as the individual endpoints, so the\n`agent.create` consensus gate, plan caps, image allowlist and included-slot logic\napply exactly as one click at a time. Human-only. The new agent's API key is\nreturned once.\n",
29664
+ "requestBody": {
29665
+ "required": true,
29666
+ "content": {
29667
+ "application/json": {
29668
+ "schema": {
29669
+ "type": "object",
29670
+ "required": [
29671
+ "name",
29672
+ "agent"
29673
+ ],
29674
+ "properties": {
29675
+ "name": {
29676
+ "type": "string"
29677
+ },
29678
+ "template": {
29679
+ "type": "string"
29680
+ },
29681
+ "preset": {
29682
+ "type": "string",
29683
+ "default": "small"
29684
+ },
29685
+ "agent": {
29686
+ "type": "object",
29687
+ "description": "Either `id` (existing) or `name` (create).",
29688
+ "properties": {
29689
+ "id": {
29690
+ "type": "string",
29691
+ "format": "uuid"
29692
+ },
29693
+ "name": {
29694
+ "type": "string"
29695
+ },
29696
+ "description": {
29697
+ "type": "string"
29698
+ }
29699
+ }
29700
+ },
29701
+ "env_public": {
29702
+ "type": "object",
29703
+ "additionalProperties": {
29704
+ "type": "string"
29705
+ }
29706
+ },
29707
+ "expose_http": {
29708
+ "type": "boolean"
29709
+ },
29710
+ "source_repo": {
29711
+ "type": "string"
29712
+ },
29713
+ "startup_command": {
29714
+ "type": "string"
29715
+ },
29716
+ "environment": {
29717
+ "type": "string"
29718
+ },
29719
+ "start": {
29720
+ "type": "boolean",
29721
+ "default": true
29722
+ },
29723
+ "approval_id": {
29724
+ "type": "string",
29725
+ "format": "uuid"
29726
+ }
29727
+ }
29728
+ }
29729
+ }
29730
+ }
29731
+ },
29732
+ "responses": {
29733
+ "201": {
29734
+ "description": "Provisioned",
29735
+ "content": {
29736
+ "application/json": {
29737
+ "schema": {
29738
+ "type": "object",
29739
+ "required": [
29740
+ "runtime",
29741
+ "agent_id",
29742
+ "started"
29743
+ ],
29744
+ "properties": {
29745
+ "runtime": {
29746
+ "$ref": "#/components/schemas/RuntimeResponse"
29747
+ },
29748
+ "agent_id": {
29749
+ "type": "string",
29750
+ "format": "uuid"
29751
+ },
29752
+ "agent_api_key": {
29753
+ "type": "string",
29754
+ "description": "Only when the agent was created here; shown once."
29755
+ },
29756
+ "vault_id": {
29757
+ "type": "string",
29758
+ "format": "uuid"
29759
+ },
29760
+ "started": {
29761
+ "type": "boolean"
29762
+ }
29763
+ }
29764
+ }
29765
+ }
29766
+ }
29767
+ },
29768
+ "400": {
29769
+ "$ref": "#/components/responses/BadRequest"
29770
+ },
29771
+ "401": {
29772
+ "$ref": "#/components/responses/Unauthorized"
29773
+ },
29774
+ "403": {
29775
+ "$ref": "#/components/responses/Forbidden"
29776
+ }
29777
+ }
29778
+ }
29779
+ },
29780
+ "/v1/runtimes/{runtime_id}/env/resolved": {
29781
+ "get": {
29782
+ "tags": [
29783
+ "Runtimes"
29784
+ ],
29785
+ "summary": "The environment the container is started with",
29786
+ "operationId": "getRuntimeResolvedEnv",
29787
+ "description": "Every variable, its source (`platform`, `env_public`, `vault_env`, `agent`,\n`secret`) and which wins on a name collision. Vault-derived values and the minted\nagent token are named, never shown. Human-only; nothing is minted.\n",
29788
+ "parameters": [
29789
+ {
29790
+ "name": "runtime_id",
29791
+ "in": "path",
29792
+ "required": true,
29793
+ "schema": {
29794
+ "type": "string",
29795
+ "format": "uuid"
29796
+ }
29797
+ }
29798
+ ],
29799
+ "responses": {
29800
+ "200": {
29801
+ "description": "Resolved environment",
29802
+ "content": {
29803
+ "application/json": {
29804
+ "schema": {
29805
+ "type": "object",
29806
+ "properties": {
29807
+ "runtime_id": {
29808
+ "type": "string",
29809
+ "format": "uuid"
29810
+ },
29811
+ "environment": {
29812
+ "type": "string"
29813
+ },
29814
+ "restart_required_for_changes": {
29815
+ "type": "boolean"
29816
+ },
29817
+ "entries": {
29818
+ "type": "array",
29819
+ "items": {
29820
+ "type": "object",
29821
+ "properties": {
29822
+ "key": {
29823
+ "type": "string"
29824
+ },
29825
+ "source": {
29826
+ "type": "string",
29827
+ "enum": [
29828
+ "platform",
29829
+ "env_public",
29830
+ "vault_env",
29831
+ "agent",
29832
+ "secret"
29833
+ ]
29834
+ },
29835
+ "value": {
29836
+ "type": "string"
29837
+ },
29838
+ "masked": {
29839
+ "type": "boolean"
29840
+ },
29841
+ "overrides": {
29842
+ "type": "string",
29843
+ "nullable": true
29844
+ }
29845
+ }
29846
+ }
29847
+ }
29848
+ }
29849
+ }
29850
+ }
29851
+ }
29852
+ },
29853
+ "401": {
29854
+ "$ref": "#/components/responses/Unauthorized"
29855
+ },
29856
+ "404": {
29857
+ "$ref": "#/components/responses/NotFound"
29858
+ }
29859
+ }
29860
+ }
29861
+ },
29862
+ "/v1/runtimes/{runtime_id}/rollback": {
29863
+ "post": {
29864
+ "tags": [
29865
+ "Runtimes"
29866
+ ],
29867
+ "summary": "Roll back to the previous image and restart",
29868
+ "operationId": "rollbackRuntime",
29869
+ "description": "Starts the runtime again on `previous_image_digest` (recorded at each start whose\nresolved image differed). The image must still pass the allowlist. 409 when no\nprevious image is recorded.\n",
29870
+ "parameters": [
29871
+ {
29872
+ "name": "runtime_id",
29873
+ "in": "path",
29874
+ "required": true,
29875
+ "schema": {
29876
+ "type": "string",
29877
+ "format": "uuid"
29878
+ }
29879
+ }
29880
+ ],
29881
+ "responses": {
29882
+ "200": {
29883
+ "description": "Restarting on the previous image",
29884
+ "content": {
29885
+ "application/json": {
29886
+ "schema": {
29887
+ "$ref": "#/components/schemas/RuntimeResponse"
29888
+ }
29889
+ }
29890
+ }
29891
+ },
29892
+ "401": {
29893
+ "$ref": "#/components/responses/Unauthorized"
29894
+ },
29895
+ "404": {
29896
+ "$ref": "#/components/responses/NotFound"
29897
+ },
29898
+ "409": {
29899
+ "$ref": "#/components/responses/Conflict"
29900
+ }
29901
+ }
29902
+ }
29903
+ },
29656
29904
  "/v1/runtimes/{runtime_id}/rebuild": {
29657
29905
  "parameters": [
29658
29906
  {
@@ -44204,6 +44452,10 @@
44204
44452
  "updated_at"
44205
44453
  ],
44206
44454
  "properties": {
44455
+ "previous_image_digest": {
44456
+ "type": "string",
44457
+ "nullable": true
44458
+ },
44207
44459
  "image_digest": {
44208
44460
  "type": "string",
44209
44461
  "nullable": true,
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.38"
5
+ version: "0.61.39"
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -18985,6 +18985,173 @@ paths:
18985
18985
  description: Forbidden, or the plan does not include this
18986
18986
  '404':
18987
18987
  description: Not found
18988
+ /v1/runtimes/provision:
18989
+ post:
18990
+ tags: [Runtimes]
18991
+ summary: Provision an agent and its runtime in one call
18992
+ operationId: provisionRuntime
18993
+ description: |
18994
+ Creates (or reuses) the agent, its keys and default-vault grant, the runtime, and
18995
+ starts it. Each step runs the same code as the individual endpoints, so the
18996
+ `agent.create` consensus gate, plan caps, image allowlist and included-slot logic
18997
+ apply exactly as one click at a time. Human-only. The new agent's API key is
18998
+ returned once.
18999
+ requestBody:
19000
+ required: true
19001
+ content:
19002
+ application/json:
19003
+ schema:
19004
+ type: object
19005
+ required: [name, agent]
19006
+ properties:
19007
+ name:
19008
+ type: string
19009
+ template:
19010
+ type: string
19011
+ preset:
19012
+ type: string
19013
+ default: small
19014
+ agent:
19015
+ type: object
19016
+ description: Either `id` (existing) or `name` (create).
19017
+ properties:
19018
+ id:
19019
+ type: string
19020
+ format: uuid
19021
+ name:
19022
+ type: string
19023
+ description:
19024
+ type: string
19025
+ env_public:
19026
+ type: object
19027
+ additionalProperties:
19028
+ type: string
19029
+ expose_http:
19030
+ type: boolean
19031
+ source_repo:
19032
+ type: string
19033
+ startup_command:
19034
+ type: string
19035
+ environment:
19036
+ type: string
19037
+ start:
19038
+ type: boolean
19039
+ default: true
19040
+ approval_id:
19041
+ type: string
19042
+ format: uuid
19043
+ responses:
19044
+ "201":
19045
+ description: Provisioned
19046
+ content:
19047
+ application/json:
19048
+ schema:
19049
+ type: object
19050
+ required: [runtime, agent_id, started]
19051
+ properties:
19052
+ runtime:
19053
+ $ref: "#/components/schemas/RuntimeResponse"
19054
+ agent_id:
19055
+ type: string
19056
+ format: uuid
19057
+ agent_api_key:
19058
+ type: string
19059
+ description: Only when the agent was created here; shown once.
19060
+ vault_id:
19061
+ type: string
19062
+ format: uuid
19063
+ started:
19064
+ type: boolean
19065
+ "400":
19066
+ $ref: "#/components/responses/BadRequest"
19067
+ "401":
19068
+ $ref: "#/components/responses/Unauthorized"
19069
+ "403":
19070
+ $ref: "#/components/responses/Forbidden"
19071
+
19072
+ /v1/runtimes/{runtime_id}/env/resolved:
19073
+ get:
19074
+ tags: [Runtimes]
19075
+ summary: The environment the container is started with
19076
+ operationId: getRuntimeResolvedEnv
19077
+ description: |
19078
+ Every variable, its source (`platform`, `env_public`, `vault_env`, `agent`,
19079
+ `secret`) and which wins on a name collision. Vault-derived values and the minted
19080
+ agent token are named, never shown. Human-only; nothing is minted.
19081
+ parameters:
19082
+ - name: runtime_id
19083
+ in: path
19084
+ required: true
19085
+ schema:
19086
+ type: string
19087
+ format: uuid
19088
+ responses:
19089
+ "200":
19090
+ description: Resolved environment
19091
+ content:
19092
+ application/json:
19093
+ schema:
19094
+ type: object
19095
+ properties:
19096
+ runtime_id:
19097
+ type: string
19098
+ format: uuid
19099
+ environment:
19100
+ type: string
19101
+ restart_required_for_changes:
19102
+ type: boolean
19103
+ entries:
19104
+ type: array
19105
+ items:
19106
+ type: object
19107
+ properties:
19108
+ key:
19109
+ type: string
19110
+ source:
19111
+ type: string
19112
+ enum: [platform, env_public, vault_env, agent, secret]
19113
+ value:
19114
+ type: string
19115
+ masked:
19116
+ type: boolean
19117
+ overrides:
19118
+ type: string
19119
+ nullable: true
19120
+ "401":
19121
+ $ref: "#/components/responses/Unauthorized"
19122
+ "404":
19123
+ $ref: "#/components/responses/NotFound"
19124
+
19125
+ /v1/runtimes/{runtime_id}/rollback:
19126
+ post:
19127
+ tags: [Runtimes]
19128
+ summary: Roll back to the previous image and restart
19129
+ operationId: rollbackRuntime
19130
+ description: |
19131
+ Starts the runtime again on `previous_image_digest` (recorded at each start whose
19132
+ resolved image differed). The image must still pass the allowlist. 409 when no
19133
+ previous image is recorded.
19134
+ parameters:
19135
+ - name: runtime_id
19136
+ in: path
19137
+ required: true
19138
+ schema:
19139
+ type: string
19140
+ format: uuid
19141
+ responses:
19142
+ "200":
19143
+ description: Restarting on the previous image
19144
+ content:
19145
+ application/json:
19146
+ schema:
19147
+ $ref: "#/components/schemas/RuntimeResponse"
19148
+ "401":
19149
+ $ref: "#/components/responses/Unauthorized"
19150
+ "404":
19151
+ $ref: "#/components/responses/NotFound"
19152
+ "409":
19153
+ $ref: "#/components/responses/Conflict"
19154
+
18988
19155
  /v1/runtimes/{runtime_id}/rebuild:
18989
19156
  parameters:
18990
19157
  - name: runtime_id
@@ -28622,6 +28789,9 @@ components:
28622
28789
  type: object
28623
28790
  required: [id, name, agent_id, status, created_at, updated_at]
28624
28791
  properties:
28792
+ previous_image_digest:
28793
+ type: string
28794
+ nullable: true
28625
28795
  image_digest:
28626
28796
  type: string
28627
28797
  nullable: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.61.38",
3
+ "version": "0.61.39",
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": {