@knowledge-stack/ksapi 3.11.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/.openapi-generator/FILES +26 -4
  2. package/README.md +18 -6
  3. package/dist/apis/AuthApi.d.ts +12 -9
  4. package/dist/apis/AuthApi.js +5 -2
  5. package/dist/apis/FeedbackApi.d.ts +10 -7
  6. package/dist/apis/FeedbackApi.js +5 -2
  7. package/dist/apis/InvitesApi.d.ts +39 -1
  8. package/dist/apis/InvitesApi.js +41 -0
  9. package/dist/apis/UsersApi.d.ts +51 -59
  10. package/dist/apis/UsersApi.js +50 -57
  11. package/dist/esm/apis/AuthApi.d.ts +12 -9
  12. package/dist/esm/apis/AuthApi.js +6 -3
  13. package/dist/esm/apis/FeedbackApi.d.ts +10 -7
  14. package/dist/esm/apis/FeedbackApi.js +5 -2
  15. package/dist/esm/apis/InvitesApi.d.ts +39 -1
  16. package/dist/esm/apis/InvitesApi.js +42 -1
  17. package/dist/esm/apis/UsersApi.d.ts +51 -59
  18. package/dist/esm/apis/UsersApi.js +51 -58
  19. package/dist/esm/models/{OnboardingProfileRequest.d.ts → AccessRequestResponse.d.ts} +14 -26
  20. package/dist/esm/models/{OnboardingCompanyRequest.js → AccessRequestResponse.js} +13 -20
  21. package/dist/esm/models/AddedBy.d.ts +25 -0
  22. package/dist/esm/models/AddedBy.js +43 -0
  23. package/dist/esm/models/CreatePasswordUserRequest.d.ts +6 -0
  24. package/dist/esm/models/CreatePasswordUserRequest.js +2 -0
  25. package/dist/esm/models/ErrorResponse.d.ts +2 -0
  26. package/dist/esm/models/ErrorResponse.js +2 -0
  27. package/dist/esm/models/FeaturesResponse.d.ts +7 -0
  28. package/dist/esm/models/FeaturesResponse.js +5 -0
  29. package/dist/esm/models/GuideModuleProgress.d.ts +66 -0
  30. package/dist/{models/OnboardingProfileRequest.js → esm/models/GuideModuleProgress.js} +31 -25
  31. package/dist/esm/models/GuideModuleStatus.d.ts +26 -0
  32. package/dist/esm/models/GuideModuleStatus.js +44 -0
  33. package/dist/esm/models/GuideModules.d.ts +126 -0
  34. package/dist/esm/models/GuideModules.js +69 -0
  35. package/dist/esm/models/InvitePreviewResponse.d.ts +80 -0
  36. package/dist/esm/models/InvitePreviewResponse.js +57 -0
  37. package/dist/esm/models/InvitePreviewState.d.ts +28 -0
  38. package/dist/esm/models/InvitePreviewState.js +46 -0
  39. package/dist/esm/models/InviteRejection.d.ts +30 -0
  40. package/dist/esm/models/InviteRejection.js +48 -0
  41. package/dist/esm/models/KbSummaryResponse.d.ts +8 -0
  42. package/dist/esm/models/KbSummaryResponse.js +4 -0
  43. package/dist/esm/models/{OnboardingCompanyRequest.d.ts → OnboardingState.d.ts} +26 -18
  44. package/dist/esm/models/{OnboardingProfileRequest.js → OnboardingState.js} +17 -19
  45. package/dist/esm/models/OnboardingStateUpdate.d.ts +61 -0
  46. package/dist/esm/models/OnboardingStateUpdate.js +48 -0
  47. package/dist/esm/models/OnboardingStep.d.ts +27 -0
  48. package/dist/esm/models/OnboardingStep.js +45 -0
  49. package/dist/esm/models/SignUpResponse.d.ts +174 -0
  50. package/dist/esm/models/SignUpResponse.js +107 -0
  51. package/dist/esm/models/TenantResponse.d.ts +7 -0
  52. package/dist/esm/models/TenantResponse.js +5 -0
  53. package/dist/esm/models/TenantUserJoinMethod.d.ts +26 -0
  54. package/dist/esm/models/TenantUserJoinMethod.js +44 -0
  55. package/dist/esm/models/UserResponse.d.ts +40 -0
  56. package/dist/esm/models/UserResponse.js +18 -0
  57. package/dist/esm/models/index.d.ts +13 -2
  58. package/dist/esm/models/index.js +13 -2
  59. package/dist/models/{OnboardingProfileRequest.d.ts → AccessRequestResponse.d.ts} +14 -26
  60. package/dist/models/{OnboardingCompanyRequest.js → AccessRequestResponse.js} +19 -26
  61. package/dist/models/AddedBy.d.ts +25 -0
  62. package/dist/models/AddedBy.js +51 -0
  63. package/dist/models/CreatePasswordUserRequest.d.ts +6 -0
  64. package/dist/models/CreatePasswordUserRequest.js +2 -0
  65. package/dist/models/ErrorResponse.d.ts +2 -0
  66. package/dist/models/ErrorResponse.js +2 -0
  67. package/dist/models/FeaturesResponse.d.ts +7 -0
  68. package/dist/models/FeaturesResponse.js +5 -0
  69. package/dist/models/GuideModuleProgress.d.ts +66 -0
  70. package/dist/models/GuideModuleProgress.js +72 -0
  71. package/dist/models/GuideModuleStatus.d.ts +26 -0
  72. package/dist/models/GuideModuleStatus.js +52 -0
  73. package/dist/models/GuideModules.d.ts +126 -0
  74. package/dist/models/GuideModules.js +77 -0
  75. package/dist/models/InvitePreviewResponse.d.ts +80 -0
  76. package/dist/models/InvitePreviewResponse.js +65 -0
  77. package/dist/models/InvitePreviewState.d.ts +28 -0
  78. package/dist/models/InvitePreviewState.js +54 -0
  79. package/dist/models/InviteRejection.d.ts +30 -0
  80. package/dist/models/InviteRejection.js +56 -0
  81. package/dist/models/KbSummaryResponse.d.ts +8 -0
  82. package/dist/models/KbSummaryResponse.js +4 -0
  83. package/dist/models/{OnboardingCompanyRequest.d.ts → OnboardingState.d.ts} +26 -18
  84. package/dist/models/OnboardingState.js +56 -0
  85. package/dist/models/OnboardingStateUpdate.d.ts +61 -0
  86. package/dist/models/OnboardingStateUpdate.js +56 -0
  87. package/dist/models/OnboardingStep.d.ts +27 -0
  88. package/dist/models/OnboardingStep.js +53 -0
  89. package/dist/models/SignUpResponse.d.ts +174 -0
  90. package/dist/models/SignUpResponse.js +115 -0
  91. package/dist/models/TenantResponse.d.ts +7 -0
  92. package/dist/models/TenantResponse.js +5 -0
  93. package/dist/models/TenantUserJoinMethod.d.ts +26 -0
  94. package/dist/models/TenantUserJoinMethod.js +52 -0
  95. package/dist/models/UserResponse.d.ts +40 -0
  96. package/dist/models/UserResponse.js +18 -0
  97. package/dist/models/index.d.ts +13 -2
  98. package/dist/models/index.js +13 -2
  99. package/docs/{OnboardingCompanyRequest.md → AccessRequestResponse.md} +6 -9
  100. package/docs/{OnboardingProfileRequest.md → AddedBy.md} +4 -11
  101. package/docs/AuthApi.md +8 -5
  102. package/docs/CreatePasswordUserRequest.md +2 -0
  103. package/docs/FeaturesResponse.md +2 -0
  104. package/docs/FeedbackApi.md +8 -5
  105. package/docs/GuideModuleProgress.md +40 -0
  106. package/docs/GuideModuleStatus.md +32 -0
  107. package/docs/GuideModules.md +60 -0
  108. package/docs/InvitePreviewResponse.md +44 -0
  109. package/docs/InvitePreviewState.md +32 -0
  110. package/docs/InviteRejection.md +32 -0
  111. package/docs/InvitesApi.md +70 -0
  112. package/docs/KbSummaryResponse.md +2 -0
  113. package/docs/OnboardingState.md +39 -0
  114. package/docs/OnboardingStateUpdate.md +38 -0
  115. package/docs/OnboardingStep.md +32 -0
  116. package/docs/SignUpResponse.md +74 -0
  117. package/docs/TenantResponse.md +2 -0
  118. package/docs/TenantUserJoinMethod.md +32 -0
  119. package/docs/UserResponse.md +12 -0
  120. package/docs/UsersApi.md +36 -47
  121. package/package.json +1 -1
  122. package/src/apis/AuthApi.ts +20 -10
  123. package/src/apis/FeedbackApi.ts +14 -7
  124. package/src/apis/InvitesApi.ts +78 -0
  125. package/src/apis/UsersApi.ts +91 -110
  126. package/src/models/{OnboardingCompanyRequest.ts → AccessRequestResponse.ts} +19 -32
  127. package/src/models/AddedBy.ts +53 -0
  128. package/src/models/CreatePasswordUserRequest.ts +8 -0
  129. package/src/models/ErrorResponse.ts +2 -0
  130. package/src/models/FeaturesResponse.ts +16 -0
  131. package/src/models/GuideModuleProgress.ts +127 -0
  132. package/src/models/GuideModuleStatus.ts +54 -0
  133. package/src/models/GuideModules.ts +194 -0
  134. package/src/models/InvitePreviewResponse.ts +147 -0
  135. package/src/models/InvitePreviewState.ts +56 -0
  136. package/src/models/InviteRejection.ts +58 -0
  137. package/src/models/KbSummaryResponse.ts +9 -0
  138. package/src/models/{OnboardingProfileRequest.ts → OnboardingState.ts} +47 -33
  139. package/src/models/OnboardingStateUpdate.ts +115 -0
  140. package/src/models/OnboardingStep.ts +55 -0
  141. package/src/models/SignUpResponse.ts +303 -0
  142. package/src/models/TenantResponse.ts +16 -0
  143. package/src/models/TenantUserJoinMethod.ts +54 -0
  144. package/src/models/UserResponse.ts +77 -0
  145. package/src/models/index.ts +13 -2
@@ -45,6 +45,12 @@ export interface KbSummaryResponse {
45
45
  * @memberof KbSummaryResponse
46
46
  */
47
47
  documentsByType: { [key: string]: number; };
48
+ /**
49
+ * Live document count keyed by the active version's pipeline status (pending, processing, completed, failed, cancelled, quota_limit). Documents whose active version was never ingested are absent.
50
+ * @type {{ [key: string]: number; }}
51
+ * @memberof KbSummaryResponse
52
+ */
53
+ documentsByIngestionStatus: { [key: string]: number; };
48
54
  /**
49
55
  *
50
56
  * @type {number}
@@ -155,6 +161,7 @@ export function instanceOfKbSummaryResponse(value: object): value is KbSummaryRe
155
161
  if (!('documentsTotal' in value) || value['documentsTotal'] === undefined) return false;
156
162
  if (!('documentsByOrigin' in value) || value['documentsByOrigin'] === undefined) return false;
157
163
  if (!('documentsByType' in value) || value['documentsByType'] === undefined) return false;
164
+ if (!('documentsByIngestionStatus' in value) || value['documentsByIngestionStatus'] === undefined) return false;
158
165
  if (!('documentVersionsTotal' in value) || value['documentVersionsTotal'] === undefined) return false;
159
166
  if (!('chunksTotal' in value) || value['chunksTotal'] === undefined) return false;
160
167
  if (!('chunksByType' in value) || value['chunksByType'] === undefined) return false;
@@ -185,6 +192,7 @@ export function KbSummaryResponseFromJSONTyped(json: any, ignoreDiscriminator: b
185
192
  'documentsTotal': json['documents_total'],
186
193
  'documentsByOrigin': json['documents_by_origin'],
187
194
  'documentsByType': json['documents_by_type'],
195
+ 'documentsByIngestionStatus': json['documents_by_ingestion_status'],
188
196
  'documentVersionsTotal': json['document_versions_total'],
189
197
  'chunksTotal': json['chunks_total'],
190
198
  'chunksByType': json['chunks_by_type'],
@@ -216,6 +224,7 @@ export function KbSummaryResponseToJSONTyped(value?: KbSummaryResponse | null, i
216
224
  'documents_total': value['documentsTotal'],
217
225
  'documents_by_origin': value['documentsByOrigin'],
218
226
  'documents_by_type': value['documentsByType'],
227
+ 'documents_by_ingestion_status': value['documentsByIngestionStatus'],
219
228
  'document_versions_total': value['documentVersionsTotal'],
220
229
  'chunks_total': value['chunksTotal'],
221
230
  'chunks_by_type': value['chunksByType'],
@@ -13,32 +13,49 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime';
16
+ import type { GuideModules } from './GuideModules';
17
+ import {
18
+ GuideModulesFromJSON,
19
+ GuideModulesFromJSONTyped,
20
+ GuideModulesToJSON,
21
+ GuideModulesToJSONTyped,
22
+ } from './GuideModules';
23
+ import type { OnboardingStep } from './OnboardingStep';
24
+ import {
25
+ OnboardingStepFromJSON,
26
+ OnboardingStepFromJSONTyped,
27
+ OnboardingStepToJSON,
28
+ OnboardingStepToJSONTyped,
29
+ } from './OnboardingStep';
30
+
16
31
  /**
17
- * Step 2 of onboarding — per-user info for the current tenant.
32
+ * Stored state: keys and steps this release does not know are dropped.
18
33
  * @export
19
- * @interface OnboardingProfileRequest
34
+ * @interface OnboardingState
20
35
  */
21
- export interface OnboardingProfileRequest {
36
+ export interface OnboardingState {
22
37
  /**
23
- * User's first name
24
- * @type {string}
25
- * @memberof OnboardingProfileRequest
38
+ *
39
+ * @type {OnboardingStep}
40
+ * @memberof OnboardingState
26
41
  */
27
- firstName?: string | null;
42
+ currentStep?: OnboardingStep;
28
43
  /**
29
- * User's last name
30
- * @type {string}
31
- * @memberof OnboardingProfileRequest
44
+ *
45
+ * @type {GuideModules}
46
+ * @memberof OnboardingState
32
47
  */
33
- lastName?: string | null;
48
+ guideModules?: GuideModules;
34
49
  /**
35
- * What the user does at this tenant
36
- * @type {string}
37
- * @memberof OnboardingProfileRequest
50
+ *
51
+ * @type {boolean}
52
+ * @memberof OnboardingState
38
53
  */
39
- jobTitle?: string | null;
54
+ setupChecklistDismissed?: boolean;
40
55
  }
41
- export const OnboardingProfileRequestPropertyValidationAttributesMap: {
56
+
57
+
58
+ export const OnboardingStatePropertyValidationAttributesMap: {
42
59
  [property: string]: {
43
60
  maxLength?: number,
44
61
  minLength?: number,
@@ -53,49 +70,46 @@ export const OnboardingProfileRequestPropertyValidationAttributesMap: {
53
70
  uniqueItems?: boolean
54
71
  }
55
72
  } = {
56
- jobTitle: {
57
- maxLength: 120,
58
- },
59
73
  }
60
74
 
61
75
 
62
76
  /**
63
- * Check if a given object implements the OnboardingProfileRequest interface.
77
+ * Check if a given object implements the OnboardingState interface.
64
78
  */
65
- export function instanceOfOnboardingProfileRequest(value: object): value is OnboardingProfileRequest {
79
+ export function instanceOfOnboardingState(value: object): value is OnboardingState {
66
80
  return true;
67
81
  }
68
82
 
69
- export function OnboardingProfileRequestFromJSON(json: any): OnboardingProfileRequest {
70
- return OnboardingProfileRequestFromJSONTyped(json, false);
83
+ export function OnboardingStateFromJSON(json: any): OnboardingState {
84
+ return OnboardingStateFromJSONTyped(json, false);
71
85
  }
72
86
 
73
- export function OnboardingProfileRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): OnboardingProfileRequest {
87
+ export function OnboardingStateFromJSONTyped(json: any, ignoreDiscriminator: boolean): OnboardingState {
74
88
  if (json == null) {
75
89
  return json;
76
90
  }
77
91
  return {
78
92
 
79
- 'firstName': json['first_name'] == null ? undefined : json['first_name'],
80
- 'lastName': json['last_name'] == null ? undefined : json['last_name'],
81
- 'jobTitle': json['job_title'] == null ? undefined : json['job_title'],
93
+ 'currentStep': json['current_step'] == null ? undefined : OnboardingStepFromJSON(json['current_step']),
94
+ 'guideModules': json['guide_modules'] == null ? undefined : GuideModulesFromJSON(json['guide_modules']),
95
+ 'setupChecklistDismissed': json['setup_checklist_dismissed'] == null ? undefined : json['setup_checklist_dismissed'],
82
96
  };
83
97
  }
84
98
 
85
- export function OnboardingProfileRequestToJSON(json: any): OnboardingProfileRequest {
86
- return OnboardingProfileRequestToJSONTyped(json, false);
99
+ export function OnboardingStateToJSON(json: any): OnboardingState {
100
+ return OnboardingStateToJSONTyped(json, false);
87
101
  }
88
102
 
89
- export function OnboardingProfileRequestToJSONTyped(value?: OnboardingProfileRequest | null, ignoreDiscriminator: boolean = false): any {
103
+ export function OnboardingStateToJSONTyped(value?: OnboardingState | null, ignoreDiscriminator: boolean = false): any {
90
104
  if (value == null) {
91
105
  return value;
92
106
  }
93
107
 
94
108
  return {
95
109
 
96
- 'first_name': value['firstName'],
97
- 'last_name': value['lastName'],
98
- 'job_title': value['jobTitle'],
110
+ 'current_step': OnboardingStepToJSON(value['currentStep']),
111
+ 'guide_modules': GuideModulesToJSON(value['guideModules']),
112
+ 'setup_checklist_dismissed': value['setupChecklistDismissed'],
99
113
  };
100
114
  }
101
115
 
@@ -0,0 +1,115 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { GuideModules } from './GuideModules';
17
+ import {
18
+ GuideModulesFromJSON,
19
+ GuideModulesFromJSONTyped,
20
+ GuideModulesToJSON,
21
+ GuideModulesToJSONTyped,
22
+ } from './GuideModules';
23
+ import type { OnboardingStep } from './OnboardingStep';
24
+ import {
25
+ OnboardingStepFromJSON,
26
+ OnboardingStepFromJSONTyped,
27
+ OnboardingStepToJSON,
28
+ OnboardingStepToJSONTyped,
29
+ } from './OnboardingStep';
30
+
31
+ /**
32
+ *
33
+ * @export
34
+ * @interface OnboardingStateUpdate
35
+ */
36
+ export interface OnboardingStateUpdate {
37
+ /**
38
+ *
39
+ * @type {OnboardingStep}
40
+ * @memberof OnboardingStateUpdate
41
+ */
42
+ currentStep?: OnboardingStep;
43
+ /**
44
+ * Guide module progress to merge in. A completed or dismissed module only moves back to in progress under a newer module version.
45
+ * @type {GuideModules}
46
+ * @memberof OnboardingStateUpdate
47
+ */
48
+ guideModules?: GuideModules | null;
49
+ /**
50
+ * Whether the setup checklist is dismissed
51
+ * @type {boolean}
52
+ * @memberof OnboardingStateUpdate
53
+ */
54
+ setupChecklistDismissed?: boolean | null;
55
+ }
56
+
57
+
58
+ export const OnboardingStateUpdatePropertyValidationAttributesMap: {
59
+ [property: string]: {
60
+ maxLength?: number,
61
+ minLength?: number,
62
+ pattern?: string,
63
+ maximum?: number,
64
+ exclusiveMaximum?: boolean,
65
+ minimum?: number,
66
+ exclusiveMinimum?: boolean,
67
+ multipleOf?: number,
68
+ maxItems?: number,
69
+ minItems?: number,
70
+ uniqueItems?: boolean
71
+ }
72
+ } = {
73
+ }
74
+
75
+
76
+ /**
77
+ * Check if a given object implements the OnboardingStateUpdate interface.
78
+ */
79
+ export function instanceOfOnboardingStateUpdate(value: object): value is OnboardingStateUpdate {
80
+ return true;
81
+ }
82
+
83
+ export function OnboardingStateUpdateFromJSON(json: any): OnboardingStateUpdate {
84
+ return OnboardingStateUpdateFromJSONTyped(json, false);
85
+ }
86
+
87
+ export function OnboardingStateUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): OnboardingStateUpdate {
88
+ if (json == null) {
89
+ return json;
90
+ }
91
+ return {
92
+
93
+ 'currentStep': json['current_step'] == null ? undefined : OnboardingStepFromJSON(json['current_step']),
94
+ 'guideModules': json['guide_modules'] == null ? undefined : GuideModulesFromJSON(json['guide_modules']),
95
+ 'setupChecklistDismissed': json['setup_checklist_dismissed'] == null ? undefined : json['setup_checklist_dismissed'],
96
+ };
97
+ }
98
+
99
+ export function OnboardingStateUpdateToJSON(json: any): OnboardingStateUpdate {
100
+ return OnboardingStateUpdateToJSONTyped(json, false);
101
+ }
102
+
103
+ export function OnboardingStateUpdateToJSONTyped(value?: OnboardingStateUpdate | null, ignoreDiscriminator: boolean = false): any {
104
+ if (value == null) {
105
+ return value;
106
+ }
107
+
108
+ return {
109
+
110
+ 'current_step': OnboardingStepToJSON(value['currentStep']),
111
+ 'guide_modules': GuideModulesToJSON(value['guideModules']),
112
+ 'setup_checklist_dismissed': value['setupChecklistDismissed'],
113
+ };
114
+ }
115
+
@@ -0,0 +1,55 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+ /**
17
+ *
18
+ * @export
19
+ */
20
+ export const OnboardingStep = {
21
+ Workspace: 'WORKSPACE',
22
+ Knowledge: 'KNOWLEDGE',
23
+ Team: 'TEAM',
24
+ Destination: 'DESTINATION'
25
+ } as const;
26
+ export type OnboardingStep = typeof OnboardingStep[keyof typeof OnboardingStep];
27
+
28
+
29
+ export function instanceOfOnboardingStep(value: any): boolean {
30
+ for (const key in OnboardingStep) {
31
+ if (Object.prototype.hasOwnProperty.call(OnboardingStep, key)) {
32
+ if (OnboardingStep[key as keyof typeof OnboardingStep] === value) {
33
+ return true;
34
+ }
35
+ }
36
+ }
37
+ return false;
38
+ }
39
+
40
+ export function OnboardingStepFromJSON(json: any): OnboardingStep {
41
+ return OnboardingStepFromJSONTyped(json, false);
42
+ }
43
+
44
+ export function OnboardingStepFromJSONTyped(json: any, ignoreDiscriminator: boolean): OnboardingStep {
45
+ return json as OnboardingStep;
46
+ }
47
+
48
+ export function OnboardingStepToJSON(value?: OnboardingStep | null): any {
49
+ return value as any;
50
+ }
51
+
52
+ export function OnboardingStepToJSONTyped(value: any, ignoreDiscriminator: boolean): OnboardingStep {
53
+ return value as OnboardingStep;
54
+ }
55
+
@@ -0,0 +1,303 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { TenantUserJoinMethod } from './TenantUserJoinMethod';
17
+ import {
18
+ TenantUserJoinMethodFromJSON,
19
+ TenantUserJoinMethodFromJSONTyped,
20
+ TenantUserJoinMethodToJSON,
21
+ TenantUserJoinMethodToJSONTyped,
22
+ } from './TenantUserJoinMethod';
23
+ import type { IdpType } from './IdpType';
24
+ import {
25
+ IdpTypeFromJSON,
26
+ IdpTypeFromJSONTyped,
27
+ IdpTypeToJSON,
28
+ IdpTypeToJSONTyped,
29
+ } from './IdpType';
30
+ import type { InviteRejection } from './InviteRejection';
31
+ import {
32
+ InviteRejectionFromJSON,
33
+ InviteRejectionFromJSONTyped,
34
+ InviteRejectionToJSON,
35
+ InviteRejectionToJSONTyped,
36
+ } from './InviteRejection';
37
+ import type { TenantUserRole } from './TenantUserRole';
38
+ import {
39
+ TenantUserRoleFromJSON,
40
+ TenantUserRoleFromJSONTyped,
41
+ TenantUserRoleToJSON,
42
+ TenantUserRoleToJSONTyped,
43
+ } from './TenantUserRole';
44
+ import type { OnboardingState } from './OnboardingState';
45
+ import {
46
+ OnboardingStateFromJSON,
47
+ OnboardingStateFromJSONTyped,
48
+ OnboardingStateToJSON,
49
+ OnboardingStateToJSONTyped,
50
+ } from './OnboardingState';
51
+ import type { UserInfo } from './UserInfo';
52
+ import {
53
+ UserInfoFromJSON,
54
+ UserInfoFromJSONTyped,
55
+ UserInfoToJSON,
56
+ UserInfoToJSONTyped,
57
+ } from './UserInfo';
58
+ import type { AddedBy } from './AddedBy';
59
+ import {
60
+ AddedByFromJSON,
61
+ AddedByFromJSONTyped,
62
+ AddedByToJSON,
63
+ AddedByToJSONTyped,
64
+ } from './AddedBy';
65
+
66
+ /**
67
+ *
68
+ * @export
69
+ * @interface SignUpResponse
70
+ */
71
+ export interface SignUpResponse {
72
+ /**
73
+ * User ID
74
+ * @type {string}
75
+ * @memberof SignUpResponse
76
+ */
77
+ id: string;
78
+ /**
79
+ * Email address of the user
80
+ * @type {string}
81
+ * @memberof SignUpResponse
82
+ */
83
+ email: string | null;
84
+ /**
85
+ * Subscriber number as a string of digits (no country code). Returned as a string to avoid JS Number precision issues.
86
+ * @type {string}
87
+ * @memberof SignUpResponse
88
+ */
89
+ phoneNumber?: string | null;
90
+ /**
91
+ * First name of the user
92
+ * @type {string}
93
+ * @memberof SignUpResponse
94
+ */
95
+ firstName: string | null;
96
+ /**
97
+ * Last name of the user
98
+ * @type {string}
99
+ * @memberof SignUpResponse
100
+ */
101
+ lastName: string | null;
102
+ /**
103
+ *
104
+ * @type {IdpType}
105
+ * @memberof SignUpResponse
106
+ */
107
+ idpType: IdpType;
108
+ /**
109
+ * Current tenant ID the user is logged into
110
+ * @type {string}
111
+ * @memberof SignUpResponse
112
+ */
113
+ currentTenantId: string;
114
+ /**
115
+ *
116
+ * @type {TenantUserRole}
117
+ * @memberof SignUpResponse
118
+ */
119
+ currentTenantRole: TenantUserRole;
120
+ /**
121
+ * Default tenant ID the user shall be logged into
122
+ * @type {string}
123
+ * @memberof SignUpResponse
124
+ */
125
+ defaultTenantId: string;
126
+ /**
127
+ * User's job title at the current tenant (per-membership)
128
+ * @type {string}
129
+ * @memberof SignUpResponse
130
+ */
131
+ jobTitle?: string | null;
132
+ /**
133
+ * User's department at the current tenant (per-membership)
134
+ * @type {string}
135
+ * @memberof SignUpResponse
136
+ */
137
+ department?: string | null;
138
+ /**
139
+ * What the user wrote about themselves at the current tenant. The chat agent reads it on every turn.
140
+ * @type {string}
141
+ * @memberof SignUpResponse
142
+ */
143
+ bio?: string | null;
144
+ /**
145
+ * Presigned URL of the user's profile photo at the current tenant. Expires after six hours; read GET /v1/users/me again for a fresh one.
146
+ * @type {string}
147
+ * @memberof SignUpResponse
148
+ */
149
+ avatarUrl?: string | null;
150
+ /**
151
+ * When the user finished onboarding for the current tenant. NULL = wizard should be shown.
152
+ * @type {Date}
153
+ * @memberof SignUpResponse
154
+ */
155
+ onboardingCompletedAt?: Date | null;
156
+ /**
157
+ *
158
+ * @type {TenantUserJoinMethod}
159
+ * @memberof SignUpResponse
160
+ */
161
+ joinMethod: TenantUserJoinMethod;
162
+ /**
163
+ * Resume step and guide progress for the current membership.
164
+ * @type {OnboardingState}
165
+ * @memberof SignUpResponse
166
+ */
167
+ onboardingState?: OnboardingState | null;
168
+ /**
169
+ * Who sent the accepted invite that created the current membership. NULL when the membership did not come from an email invite, and on the sign-in and sign-up responses; read it from GET /v1/users/me.
170
+ * @type {UserInfo}
171
+ * @memberof SignUpResponse
172
+ */
173
+ invitedBy?: UserInfo | null;
174
+ /**
175
+ *
176
+ * @type {AddedBy}
177
+ * @memberof SignUpResponse
178
+ */
179
+ addedBy?: AddedBy;
180
+ /**
181
+ * Profile fields the identity provider overwrites on every sync, so clients render them read-only. Empty unless directory-managed.
182
+ * @type {Array<string>}
183
+ * @memberof SignUpResponse
184
+ */
185
+ idpManagedFields?: Array<string>;
186
+ /**
187
+ * The current tenant's onboarding switch: true forces the flow on, false hides it, NULL follows the deployment default.
188
+ * @type {boolean}
189
+ * @memberof SignUpResponse
190
+ */
191
+ onboardingEnabled?: boolean | null;
192
+ /**
193
+ *
194
+ * @type {InviteRejection}
195
+ * @memberof SignUpResponse
196
+ */
197
+ inviteRejection?: InviteRejection;
198
+ }
199
+
200
+
201
+ export const SignUpResponsePropertyValidationAttributesMap: {
202
+ [property: string]: {
203
+ maxLength?: number,
204
+ minLength?: number,
205
+ pattern?: string,
206
+ maximum?: number,
207
+ exclusiveMaximum?: boolean,
208
+ minimum?: number,
209
+ exclusiveMinimum?: boolean,
210
+ multipleOf?: number,
211
+ maxItems?: number,
212
+ minItems?: number,
213
+ uniqueItems?: boolean
214
+ }
215
+ } = {
216
+ }
217
+
218
+
219
+ /**
220
+ * Check if a given object implements the SignUpResponse interface.
221
+ */
222
+ export function instanceOfSignUpResponse(value: object): value is SignUpResponse {
223
+ if (!('id' in value) || value['id'] === undefined) return false;
224
+ if (!('email' in value) || value['email'] === undefined) return false;
225
+ if (!('firstName' in value) || value['firstName'] === undefined) return false;
226
+ if (!('lastName' in value) || value['lastName'] === undefined) return false;
227
+ if (!('idpType' in value) || value['idpType'] === undefined) return false;
228
+ if (!('currentTenantId' in value) || value['currentTenantId'] === undefined) return false;
229
+ if (!('currentTenantRole' in value) || value['currentTenantRole'] === undefined) return false;
230
+ if (!('defaultTenantId' in value) || value['defaultTenantId'] === undefined) return false;
231
+ if (!('joinMethod' in value) || value['joinMethod'] === undefined) return false;
232
+ return true;
233
+ }
234
+
235
+ export function SignUpResponseFromJSON(json: any): SignUpResponse {
236
+ return SignUpResponseFromJSONTyped(json, false);
237
+ }
238
+
239
+ export function SignUpResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SignUpResponse {
240
+ if (json == null) {
241
+ return json;
242
+ }
243
+ return {
244
+
245
+ 'id': json['id'],
246
+ 'email': json['email'],
247
+ 'phoneNumber': json['phone_number'] == null ? undefined : json['phone_number'],
248
+ 'firstName': json['first_name'],
249
+ 'lastName': json['last_name'],
250
+ 'idpType': IdpTypeFromJSON(json['idp_type']),
251
+ 'currentTenantId': json['current_tenant_id'],
252
+ 'currentTenantRole': TenantUserRoleFromJSON(json['current_tenant_role']),
253
+ 'defaultTenantId': json['default_tenant_id'],
254
+ 'jobTitle': json['job_title'] == null ? undefined : json['job_title'],
255
+ 'department': json['department'] == null ? undefined : json['department'],
256
+ 'bio': json['bio'] == null ? undefined : json['bio'],
257
+ 'avatarUrl': json['avatar_url'] == null ? undefined : json['avatar_url'],
258
+ 'onboardingCompletedAt': json['onboarding_completed_at'] == null ? undefined : (new Date(json['onboarding_completed_at'])),
259
+ 'joinMethod': TenantUserJoinMethodFromJSON(json['join_method']),
260
+ 'onboardingState': json['onboarding_state'] == null ? undefined : OnboardingStateFromJSON(json['onboarding_state']),
261
+ 'invitedBy': json['invited_by'] == null ? undefined : UserInfoFromJSON(json['invited_by']),
262
+ 'addedBy': json['added_by'] == null ? undefined : AddedByFromJSON(json['added_by']),
263
+ 'idpManagedFields': json['idp_managed_fields'] == null ? undefined : json['idp_managed_fields'],
264
+ 'onboardingEnabled': json['onboarding_enabled'] == null ? undefined : json['onboarding_enabled'],
265
+ 'inviteRejection': json['invite_rejection'] == null ? undefined : InviteRejectionFromJSON(json['invite_rejection']),
266
+ };
267
+ }
268
+
269
+ export function SignUpResponseToJSON(json: any): SignUpResponse {
270
+ return SignUpResponseToJSONTyped(json, false);
271
+ }
272
+
273
+ export function SignUpResponseToJSONTyped(value?: SignUpResponse | null, ignoreDiscriminator: boolean = false): any {
274
+ if (value == null) {
275
+ return value;
276
+ }
277
+
278
+ return {
279
+
280
+ 'id': value['id'],
281
+ 'email': value['email'],
282
+ 'phone_number': value['phoneNumber'],
283
+ 'first_name': value['firstName'],
284
+ 'last_name': value['lastName'],
285
+ 'idp_type': IdpTypeToJSON(value['idpType']),
286
+ 'current_tenant_id': value['currentTenantId'],
287
+ 'current_tenant_role': TenantUserRoleToJSON(value['currentTenantRole']),
288
+ 'default_tenant_id': value['defaultTenantId'],
289
+ 'job_title': value['jobTitle'],
290
+ 'department': value['department'],
291
+ 'bio': value['bio'],
292
+ 'avatar_url': value['avatarUrl'],
293
+ 'onboarding_completed_at': value['onboardingCompletedAt'] == null ? value['onboardingCompletedAt'] : value['onboardingCompletedAt'].toISOString(),
294
+ 'join_method': TenantUserJoinMethodToJSON(value['joinMethod']),
295
+ 'onboarding_state': OnboardingStateToJSON(value['onboardingState']),
296
+ 'invited_by': UserInfoToJSON(value['invitedBy']),
297
+ 'added_by': AddedByToJSON(value['addedBy']),
298
+ 'idp_managed_fields': value['idpManagedFields'],
299
+ 'onboarding_enabled': value['onboardingEnabled'],
300
+ 'invite_rejection': InviteRejectionToJSON(value['inviteRejection']),
301
+ };
302
+ }
303
+