@work-shape/catalyst-api-contract 0.8.0-rc.10 → 0.8.0-rc.11

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/openapi.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Workshape Catalyst API",
5
- "version": "0.8.0-rc.10",
6
- "description": "Every operation under `/api/v1` of release 0.8.0-rc.10, and the unversioned readiness probe `/ready`. Every error answers with the envelope `ApiErrorResponse`; its `code` is the stable part, its `correlationId` names the request in the instance's log."
5
+ "version": "0.8.0-rc.11",
6
+ "description": "Every operation under `/api/v1` of release 0.8.0-rc.11, and the unversioned readiness probe `/ready`. Every error answers with the envelope `ApiErrorResponse`; its `code` is the stable part, its `correlationId` names the request in the instance's log."
7
7
  },
8
8
  "servers": [
9
9
  {
@@ -6860,6 +6860,166 @@
6860
6860
  "x-catalyst-rate-class": "write"
6861
6861
  }
6862
6862
  },
6863
+ "/api/v1/connections/{name}/source-folders": {
6864
+ "get": {
6865
+ "operationId": "connections.source_folders",
6866
+ "summary": "List the folders inside one folder of a document source, to choose a Knowledge Base's folders",
6867
+ "tags": [
6868
+ "Connections"
6869
+ ],
6870
+ "security": [
6871
+ {
6872
+ "sessionCookie": [
6873
+ "config_assets:read"
6874
+ ]
6875
+ },
6876
+ {
6877
+ "sessionToken": [
6878
+ "config_assets:read"
6879
+ ]
6880
+ },
6881
+ {
6882
+ "accessToken": [
6883
+ "config_assets:read"
6884
+ ]
6885
+ }
6886
+ ],
6887
+ "parameters": [
6888
+ {
6889
+ "name": "name",
6890
+ "in": "path",
6891
+ "required": true,
6892
+ "schema": {
6893
+ "type": "string"
6894
+ }
6895
+ },
6896
+ {
6897
+ "name": "parent",
6898
+ "in": "query",
6899
+ "required": false,
6900
+ "schema": {
6901
+ "type": "string",
6902
+ "minLength": 1,
6903
+ "maxLength": 500
6904
+ }
6905
+ },
6906
+ {
6907
+ "name": "pageToken",
6908
+ "in": "query",
6909
+ "required": false,
6910
+ "schema": {
6911
+ "type": "string",
6912
+ "minLength": 1,
6913
+ "maxLength": 4000
6914
+ }
6915
+ }
6916
+ ],
6917
+ "responses": {
6918
+ "200": {
6919
+ "description": "The result",
6920
+ "content": {
6921
+ "application/json": {
6922
+ "schema": {
6923
+ "type": "object",
6924
+ "properties": {
6925
+ "folder": {
6926
+ "type": "object",
6927
+ "properties": {
6928
+ "id": {
6929
+ "type": "string",
6930
+ "minLength": 1,
6931
+ "maxLength": 500
6932
+ },
6933
+ "name": {
6934
+ "type": "string",
6935
+ "minLength": 1,
6936
+ "maxLength": 1000
6937
+ },
6938
+ "path": {
6939
+ "type": "string",
6940
+ "minLength": 1,
6941
+ "maxLength": 4000
6942
+ }
6943
+ },
6944
+ "required": [
6945
+ "id",
6946
+ "name",
6947
+ "path"
6948
+ ]
6949
+ },
6950
+ "folders": {
6951
+ "type": "array",
6952
+ "items": {
6953
+ "type": "object",
6954
+ "properties": {
6955
+ "id": {
6956
+ "type": "string",
6957
+ "minLength": 1,
6958
+ "maxLength": 500
6959
+ },
6960
+ "name": {
6961
+ "type": "string",
6962
+ "minLength": 1,
6963
+ "maxLength": 1000
6964
+ }
6965
+ },
6966
+ "required": [
6967
+ "id",
6968
+ "name"
6969
+ ]
6970
+ }
6971
+ },
6972
+ "nextPageToken": {
6973
+ "type": "string",
6974
+ "minLength": 1,
6975
+ "maxLength": 4000
6976
+ }
6977
+ },
6978
+ "required": [
6979
+ "folder",
6980
+ "folders"
6981
+ ]
6982
+ }
6983
+ }
6984
+ },
6985
+ "headers": {
6986
+ "Operation-Run-Id": {
6987
+ "$ref": "#/components/headers/OperationRunId"
6988
+ }
6989
+ }
6990
+ },
6991
+ "400": {
6992
+ "$ref": "#/components/responses/BadRequest"
6993
+ },
6994
+ "401": {
6995
+ "$ref": "#/components/responses/Unauthenticated"
6996
+ },
6997
+ "403": {
6998
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
6999
+ },
7000
+ "404": {
7001
+ "$ref": "#/components/responses/NotFound"
7002
+ },
7003
+ "409": {
7004
+ "$ref": "#/components/responses/Conflict"
7005
+ },
7006
+ "422": {
7007
+ "$ref": "#/components/responses/ValidationFailed"
7008
+ },
7009
+ "429": {
7010
+ "$ref": "#/components/responses/RateLimited"
7011
+ },
7012
+ "500": {
7013
+ "$ref": "#/components/responses/Internal"
7014
+ },
7015
+ "504": {
7016
+ "$ref": "#/components/responses/Timeout"
7017
+ }
7018
+ },
7019
+ "x-catalyst-effect": "reading",
7020
+ "x-catalyst-rate-class": "read"
7021
+ }
7022
+ },
6863
7023
  "/api/v1/connections/{name}/test": {
6864
7024
  "post": {
6865
7025
  "operationId": "connections.test",
@@ -21063,6 +21223,126 @@
21063
21223
  "x-catalyst-rate-class": "write"
21064
21224
  }
21065
21225
  },
21226
+ "/api/v1/instance/users/{userId}/two-factor/reset": {
21227
+ "post": {
21228
+ "operationId": "users.two_factor.reset",
21229
+ "summary": "Reset a user's two-factor sign-in: delete their second factor and trusted browsers and end their sessions. Needs the right `users.manage`. Only a superadmin resets a superadmin; nobody resets their own.",
21230
+ "tags": [
21231
+ "Users"
21232
+ ],
21233
+ "security": [
21234
+ {
21235
+ "sessionCookie": [
21236
+ "user_admin:write"
21237
+ ]
21238
+ },
21239
+ {
21240
+ "sessionToken": [
21241
+ "user_admin:write"
21242
+ ]
21243
+ }
21244
+ ],
21245
+ "parameters": [
21246
+ {
21247
+ "name": "userId",
21248
+ "in": "path",
21249
+ "required": true,
21250
+ "schema": {
21251
+ "type": "string"
21252
+ }
21253
+ },
21254
+ {
21255
+ "name": "Idempotency-Key",
21256
+ "in": "header",
21257
+ "description": "A key the caller chooses for one changing call, up to 255 characters. The same key with the same input answers what the first call answered instead of acting twice. A key belongs to its caller: another caller's same key is another call.",
21258
+ "required": false,
21259
+ "schema": {
21260
+ "type": "string",
21261
+ "minLength": 1,
21262
+ "maxLength": 255
21263
+ }
21264
+ },
21265
+ {
21266
+ "name": "Catalyst-Unattended",
21267
+ "in": "header",
21268
+ "description": "`1` on a call of an API credential when nobody watches its terminal, such as `catalyst <kind> publish --yes`. The call is then not its caller's own confirmation: a call that needs one waits in the caller's Inbox and answers `202` with its run, status `pending_confirmation`. It only ever makes a call stricter; a browser session's call ignores it.",
21269
+ "required": false,
21270
+ "schema": {
21271
+ "type": "string",
21272
+ "minLength": 1,
21273
+ "maxLength": 255
21274
+ }
21275
+ }
21276
+ ],
21277
+ "responses": {
21278
+ "200": {
21279
+ "description": "The result",
21280
+ "content": {
21281
+ "application/json": {
21282
+ "schema": {
21283
+ "$ref": "#/components/schemas/ResetAdministeredUserTwoFactorResponse"
21284
+ }
21285
+ }
21286
+ },
21287
+ "headers": {
21288
+ "Operation-Run-Id": {
21289
+ "$ref": "#/components/headers/OperationRunId"
21290
+ },
21291
+ "Idempotent-Replayed": {
21292
+ "$ref": "#/components/headers/IdempotentReplayed"
21293
+ }
21294
+ }
21295
+ },
21296
+ "202": {
21297
+ "description": "The call waits for somebody else to approve it. This is its Operation Run; read it again at `Location`.",
21298
+ "content": {
21299
+ "application/json": {
21300
+ "schema": {
21301
+ "$ref": "#/components/schemas/OperationRun"
21302
+ }
21303
+ }
21304
+ },
21305
+ "headers": {
21306
+ "Operation-Run-Id": {
21307
+ "$ref": "#/components/headers/OperationRunId"
21308
+ },
21309
+ "Location": {
21310
+ "$ref": "#/components/headers/Location"
21311
+ },
21312
+ "Idempotent-Replayed": {
21313
+ "$ref": "#/components/headers/IdempotentReplayed"
21314
+ }
21315
+ }
21316
+ },
21317
+ "400": {
21318
+ "$ref": "#/components/responses/BadRequest"
21319
+ },
21320
+ "401": {
21321
+ "$ref": "#/components/responses/Unauthenticated"
21322
+ },
21323
+ "403": {
21324
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlockedOrDeclined"
21325
+ },
21326
+ "404": {
21327
+ "$ref": "#/components/responses/NotFound"
21328
+ },
21329
+ "409": {
21330
+ "$ref": "#/components/responses/IdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
21331
+ },
21332
+ "422": {
21333
+ "$ref": "#/components/responses/ValidationFailed"
21334
+ },
21335
+ "429": {
21336
+ "$ref": "#/components/responses/RateLimited"
21337
+ },
21338
+ "500": {
21339
+ "$ref": "#/components/responses/Internal"
21340
+ }
21341
+ },
21342
+ "x-catalyst-effect": "changing",
21343
+ "x-catalyst-rate-class": "write"
21344
+ }
21345
+ },
21066
21346
  "/api/v1/instance/workspaces": {
21067
21347
  "get": {
21068
21348
  "operationId": "instance.workspaces.list",
@@ -35179,7 +35459,7 @@
35179
35459
  }
35180
35460
  },
35181
35461
  "Forbidden": {
35182
- "description": "`FORBIDDEN`: The caller lacks the scope or the right this operation requires.",
35462
+ "description": "`FORBIDDEN`: The caller lacks the scope or the right this operation requires. `details.reason` is `two_factor_setup_required` where the instance requires two-factor sign-in and the person signed in with a password, or the owner of the personal key, has not set it up: every operation but `me.get` is refused until they have.",
35183
35463
  "content": {
35184
35464
  "application/json": {
35185
35465
  "schema": {
@@ -35269,7 +35549,7 @@
35269
35549
  }
35270
35550
  },
35271
35551
  "ForbiddenOrPolicyDeniedOrGuardrailBlocked": {
35272
- "description": "`FORBIDDEN`: The caller lacks the scope or the right this operation requires. `POLICY_DENIED`: The instance's policy does not allow this operation from here. `details.operation` names it. `details.reason` is `approval_unavailable` where the policy asks for another person's approval and the call cannot wait for one; `details.guardrailId` then names the guardrail that asked for it, where one did. It is `workflow_deleted` where a step of a run of a published Workflow needs the confirmation its publish gave, and the Workflow was deleted since. It is `approval_stale` where a call that waited can no longer be approved because what it is about changed or a newer call replaced it. It is `confirmation_required` where a subagent made a call that needs a person's confirmation or approval: a subagent never waits for one, and the agent that started it makes the call instead. `GUARDRAIL_BLOCKED`: A guardrail refused the call. `details.guardrailId` names it. `details.reason` is `check_unavailable` where a check could not answer, by an error or a timeout; `details.guardrailId` then names the event that was checked.",
35552
+ "description": "`FORBIDDEN`: The caller lacks the scope or the right this operation requires. `details.reason` is `two_factor_setup_required` where the instance requires two-factor sign-in and the person signed in with a password, or the owner of the personal key, has not set it up: every operation but `me.get` is refused until they have. `POLICY_DENIED`: The instance's policy does not allow this operation from here. `details.operation` names it. `details.reason` is `approval_unavailable` where the policy asks for another person's approval and the call cannot wait for one; `details.guardrailId` then names the guardrail that asked for it, where one did. It is `workflow_deleted` where a step of a run of a published Workflow needs the confirmation its publish gave, and the Workflow was deleted since. It is `approval_stale` where a call that waited can no longer be approved because what it is about changed or a newer call replaced it. It is `confirmation_required` where a subagent made a call that needs a person's confirmation or approval: a subagent never waits for one, and the agent that started it makes the call instead. `GUARDRAIL_BLOCKED`: A guardrail refused the call. `details.guardrailId` names it. `details.reason` is `check_unavailable` where a check could not answer, by an error or a timeout; `details.guardrailId` then names the event that was checked.",
35273
35553
  "content": {
35274
35554
  "application/json": {
35275
35555
  "schema": {
@@ -35289,7 +35569,7 @@
35289
35569
  }
35290
35570
  },
35291
35571
  "ForbiddenOrPolicyDeniedOrGuardrailBlockedOrDeclined": {
35292
- "description": "`FORBIDDEN`: The caller lacks the scope or the right this operation requires. `POLICY_DENIED`: The instance's policy does not allow this operation from here. `details.operation` names it. `details.reason` is `approval_unavailable` where the policy asks for another person's approval and the call cannot wait for one; `details.guardrailId` then names the guardrail that asked for it, where one did. It is `workflow_deleted` where a step of a run of a published Workflow needs the confirmation its publish gave, and the Workflow was deleted since. It is `approval_stale` where a call that waited can no longer be approved because what it is about changed or a newer call replaced it. It is `confirmation_required` where a subagent made a call that needs a person's confirmation or approval: a subagent never waits for one, and the agent that started it makes the call instead. `GUARDRAIL_BLOCKED`: A guardrail refused the call. `details.guardrailId` names it. `details.reason` is `check_unavailable` where a check could not answer, by an error or a timeout; `details.guardrailId` then names the event that was checked. `DECLINED`: The person asked to approve the call declined it. `details.by` names them, `details.comment` holds their reason where they gave one.",
35572
+ "description": "`FORBIDDEN`: The caller lacks the scope or the right this operation requires. `details.reason` is `two_factor_setup_required` where the instance requires two-factor sign-in and the person signed in with a password, or the owner of the personal key, has not set it up: every operation but `me.get` is refused until they have. `POLICY_DENIED`: The instance's policy does not allow this operation from here. `details.operation` names it. `details.reason` is `approval_unavailable` where the policy asks for another person's approval and the call cannot wait for one; `details.guardrailId` then names the guardrail that asked for it, where one did. It is `workflow_deleted` where a step of a run of a published Workflow needs the confirmation its publish gave, and the Workflow was deleted since. It is `approval_stale` where a call that waited can no longer be approved because what it is about changed or a newer call replaced it. It is `confirmation_required` where a subagent made a call that needs a person's confirmation or approval: a subagent never waits for one, and the agent that started it makes the call instead. `GUARDRAIL_BLOCKED`: A guardrail refused the call. `details.guardrailId` names it. `details.reason` is `check_unavailable` where a check could not answer, by an error or a timeout; `details.guardrailId` then names the event that was checked. `DECLINED`: The person asked to approve the call declined it. `details.by` names them, `details.comment` holds their reason where they gave one.",
35293
35573
  "content": {
35294
35574
  "application/json": {
35295
35575
  "schema": {
@@ -35560,6 +35840,9 @@
35560
35840
  "items": {
35561
35841
  "$ref": "#/components/schemas/AdministeredUserIdentity"
35562
35842
  }
35843
+ },
35844
+ "twoFactorEnabled": {
35845
+ "type": "boolean"
35563
35846
  }
35564
35847
  },
35565
35848
  "required": [
@@ -37333,6 +37616,21 @@
37333
37616
  "items": {
37334
37617
  "$ref": "#/components/schemas/AuthScope"
37335
37618
  }
37619
+ },
37620
+ "twoFactor": {
37621
+ "type": "object",
37622
+ "properties": {
37623
+ "required": {
37624
+ "type": "boolean"
37625
+ },
37626
+ "enrolled": {
37627
+ "type": "boolean"
37628
+ }
37629
+ },
37630
+ "required": [
37631
+ "required",
37632
+ "enrolled"
37633
+ ]
37336
37634
  }
37337
37635
  },
37338
37636
  "required": [
@@ -39945,6 +40243,9 @@
39945
40243
  },
39946
40244
  "modelContext": {
39947
40245
  "$ref": "#/components/schemas/StoredModelContextSnapshot"
40246
+ },
40247
+ "modelFallback": {
40248
+ "$ref": "#/components/schemas/StoredModelFallback"
39948
40249
  }
39949
40250
  },
39950
40251
  "required": [
@@ -41038,6 +41339,9 @@
41038
41339
  },
41039
41340
  "label": {
41040
41341
  "type": "string"
41342
+ },
41343
+ "fallback": {
41344
+ "type": "string"
41041
41345
  }
41042
41346
  },
41043
41347
  "required": [
@@ -46446,6 +46750,22 @@
46446
46750
  "ok"
46447
46751
  ]
46448
46752
  },
46753
+ "ResetAdministeredUserTwoFactorResponse": {
46754
+ "type": "object",
46755
+ "properties": {
46756
+ "ok": {
46757
+ "type": "boolean",
46758
+ "const": true
46759
+ },
46760
+ "hadFactor": {
46761
+ "type": "boolean"
46762
+ }
46763
+ },
46764
+ "required": [
46765
+ "ok",
46766
+ "hadFactor"
46767
+ ]
46768
+ },
46449
46769
  "RevertAssetRequest": {
46450
46770
  "type": "object",
46451
46771
  "properties": {
@@ -47912,6 +48232,59 @@
47912
48232
  "compacted"
47913
48233
  ]
47914
48234
  },
48235
+ "StoredModelFallback": {
48236
+ "type": "object",
48237
+ "properties": {
48238
+ "from": {
48239
+ "type": "object",
48240
+ "properties": {
48241
+ "bindingId": {
48242
+ "type": "string"
48243
+ },
48244
+ "model": {
48245
+ "type": "string"
48246
+ },
48247
+ "label": {
48248
+ "type": "string"
48249
+ }
48250
+ },
48251
+ "required": [
48252
+ "bindingId",
48253
+ "model"
48254
+ ]
48255
+ },
48256
+ "to": {
48257
+ "type": "object",
48258
+ "properties": {
48259
+ "bindingId": {
48260
+ "type": "string"
48261
+ },
48262
+ "model": {
48263
+ "type": "string"
48264
+ },
48265
+ "label": {
48266
+ "type": "string"
48267
+ }
48268
+ },
48269
+ "required": [
48270
+ "bindingId",
48271
+ "model"
48272
+ ]
48273
+ },
48274
+ "reason": {
48275
+ "type": "string",
48276
+ "enum": [
48277
+ "rate_limit",
48278
+ "unavailable"
48279
+ ]
48280
+ }
48281
+ },
48282
+ "required": [
48283
+ "from",
48284
+ "to",
48285
+ "reason"
48286
+ ]
48287
+ },
47915
48288
  "StoredReasoningSummary": {
47916
48289
  "type": "object",
47917
48290
  "properties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@work-shape/catalyst-api-contract",
3
- "version": "0.8.0-rc.10",
3
+ "version": "0.8.0-rc.11",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "zod": "4.4.3",
34
- "@work-shape/catalyst-asset-schemas": "0.8.0-rc.10"
34
+ "@work-shape/catalyst-asset-schemas": "0.8.0-rc.11"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@redocly/openapi-core": "^2.62.1",