@knowledge-stack/ksapi 3.16.2 → 3.17.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 (114) hide show
  1. package/.openapi-generator/FILES +26 -4
  2. package/README.md +23 -4
  3. package/dist/apis/MemoryApi.d.ts +5 -5
  4. package/dist/apis/MemoryApi.js +1 -1
  5. package/dist/apis/WorkflowMemoryApi.d.ts +17 -17
  6. package/dist/apis/WorkflowMemoryApi.js +4 -4
  7. package/dist/apis/WorkflowRepositoryApi.d.ts +419 -0
  8. package/dist/apis/WorkflowRepositoryApi.js +595 -0
  9. package/dist/apis/index.d.ts +1 -0
  10. package/dist/apis/index.js +1 -0
  11. package/dist/esm/apis/MemoryApi.d.ts +5 -5
  12. package/dist/esm/apis/MemoryApi.js +2 -2
  13. package/dist/esm/apis/WorkflowMemoryApi.d.ts +17 -17
  14. package/dist/esm/apis/WorkflowMemoryApi.js +5 -5
  15. package/dist/esm/apis/WorkflowRepositoryApi.d.ts +419 -0
  16. package/dist/esm/apis/WorkflowRepositoryApi.js +558 -0
  17. package/dist/esm/apis/index.d.ts +1 -0
  18. package/dist/esm/apis/index.js +1 -0
  19. package/dist/esm/models/ErrorResponse.d.ts +7 -0
  20. package/dist/esm/models/ErrorResponse.js +7 -0
  21. package/dist/esm/models/{MemoryChunkResponse.d.ts → MemoryEntryResponse.d.ts} +12 -12
  22. package/dist/esm/models/{MemoryChunkResponse.js → MemoryEntryResponse.js} +9 -9
  23. package/dist/esm/models/{PaginatedResponseMemoryChunkResponse.d.ts → PaginatedResponseMemoryEntryResponse.d.ts} +16 -16
  24. package/dist/esm/models/{PaginatedResponseMemoryChunkResponse.js → PaginatedResponseMemoryEntryResponse.js} +12 -12
  25. package/dist/esm/models/PaginatedResponseRepoVersionResponse.d.ts +66 -0
  26. package/dist/esm/models/PaginatedResponseRepoVersionResponse.js +70 -0
  27. package/dist/esm/models/RecordRepoSaveSkipRequest.d.ts +60 -0
  28. package/dist/esm/models/RecordRepoSaveSkipRequest.js +55 -0
  29. package/dist/esm/models/RepoBranchResponse.d.ts +126 -0
  30. package/dist/esm/models/RepoBranchResponse.js +95 -0
  31. package/dist/esm/models/RepoCommitSummary.d.ts +71 -0
  32. package/dist/esm/models/RepoCommitSummary.js +60 -0
  33. package/dist/esm/models/RepoSaveSkipReason.d.ts +36 -0
  34. package/dist/esm/models/RepoSaveSkipReason.js +54 -0
  35. package/dist/esm/models/RepoSnapshot.d.ts +59 -0
  36. package/dist/esm/models/RepoSnapshot.js +50 -0
  37. package/dist/esm/models/RepoTreeEntry.d.ts +59 -0
  38. package/dist/esm/models/RepoTreeEntry.js +52 -0
  39. package/dist/esm/models/RepoTreeResponse.d.ts +54 -0
  40. package/dist/esm/models/RepoTreeResponse.js +49 -0
  41. package/dist/esm/models/RepoVersionResponse.d.ts +95 -0
  42. package/dist/esm/models/RepoVersionResponse.js +74 -0
  43. package/dist/esm/models/WorkflowRepoResponse.d.ts +102 -0
  44. package/dist/esm/models/WorkflowRepoResponse.js +81 -0
  45. package/dist/esm/models/WorkflowRunSnapshot.d.ts +7 -0
  46. package/dist/esm/models/WorkflowRunSnapshot.js +3 -0
  47. package/dist/esm/models/index.d.ts +12 -2
  48. package/dist/esm/models/index.js +12 -2
  49. package/dist/models/ErrorResponse.d.ts +7 -0
  50. package/dist/models/ErrorResponse.js +7 -0
  51. package/dist/models/{MemoryChunkResponse.d.ts → MemoryEntryResponse.d.ts} +12 -12
  52. package/dist/models/{MemoryChunkResponse.js → MemoryEntryResponse.js} +15 -15
  53. package/dist/models/{PaginatedResponseMemoryChunkResponse.d.ts → PaginatedResponseMemoryEntryResponse.d.ts} +16 -16
  54. package/dist/models/{PaginatedResponseMemoryChunkResponse.js → PaginatedResponseMemoryEntryResponse.js} +18 -18
  55. package/dist/models/PaginatedResponseRepoVersionResponse.d.ts +66 -0
  56. package/dist/models/PaginatedResponseRepoVersionResponse.js +78 -0
  57. package/dist/models/RecordRepoSaveSkipRequest.d.ts +60 -0
  58. package/dist/models/RecordRepoSaveSkipRequest.js +63 -0
  59. package/dist/models/RepoBranchResponse.d.ts +126 -0
  60. package/dist/models/RepoBranchResponse.js +103 -0
  61. package/dist/models/RepoCommitSummary.d.ts +71 -0
  62. package/dist/models/RepoCommitSummary.js +68 -0
  63. package/dist/models/RepoSaveSkipReason.d.ts +36 -0
  64. package/dist/models/RepoSaveSkipReason.js +62 -0
  65. package/dist/models/RepoSnapshot.d.ts +59 -0
  66. package/dist/models/RepoSnapshot.js +58 -0
  67. package/dist/models/RepoTreeEntry.d.ts +59 -0
  68. package/dist/models/RepoTreeEntry.js +60 -0
  69. package/dist/models/RepoTreeResponse.d.ts +54 -0
  70. package/dist/models/RepoTreeResponse.js +57 -0
  71. package/dist/models/RepoVersionResponse.d.ts +95 -0
  72. package/dist/models/RepoVersionResponse.js +82 -0
  73. package/dist/models/WorkflowRepoResponse.d.ts +102 -0
  74. package/dist/models/WorkflowRepoResponse.js +89 -0
  75. package/dist/models/WorkflowRunSnapshot.d.ts +7 -0
  76. package/dist/models/WorkflowRunSnapshot.js +3 -0
  77. package/dist/models/index.d.ts +12 -2
  78. package/dist/models/index.js +12 -2
  79. package/docs/MemoryApi.md +2 -2
  80. package/docs/{MemoryChunkResponse.md → MemoryEntryResponse.md} +4 -4
  81. package/docs/{PaginatedResponseMemoryChunkResponse.md → PaginatedResponseMemoryEntryResponse.md} +5 -5
  82. package/docs/PaginatedResponseRepoVersionResponse.md +40 -0
  83. package/docs/RecordRepoSaveSkipRequest.md +38 -0
  84. package/docs/RepoBranchResponse.md +61 -0
  85. package/docs/RepoCommitSummary.md +42 -0
  86. package/docs/RepoSaveSkipReason.md +33 -0
  87. package/docs/RepoSnapshot.md +39 -0
  88. package/docs/RepoTreeEntry.md +38 -0
  89. package/docs/RepoTreeResponse.md +36 -0
  90. package/docs/RepoVersionResponse.md +51 -0
  91. package/docs/WorkflowMemoryApi.md +8 -8
  92. package/docs/WorkflowRepoResponse.md +53 -0
  93. package/docs/WorkflowRepositoryApi.md +745 -0
  94. package/docs/WorkflowRunSnapshot.md +2 -0
  95. package/package.json +1 -1
  96. package/src/apis/MemoryApi.ts +8 -8
  97. package/src/apis/WorkflowMemoryApi.ts +26 -26
  98. package/src/apis/WorkflowRepositoryApi.ts +1002 -0
  99. package/src/apis/index.ts +1 -0
  100. package/src/models/ErrorResponse.ts +7 -0
  101. package/src/models/{MemoryChunkResponse.ts → MemoryEntryResponse.ts} +14 -14
  102. package/src/models/{PaginatedResponseMemoryChunkResponse.ts → PaginatedResponseMemoryEntryResponse.ts} +25 -25
  103. package/src/models/PaginatedResponseRepoVersionResponse.ts +130 -0
  104. package/src/models/RecordRepoSaveSkipRequest.ts +113 -0
  105. package/src/models/RepoBranchResponse.ts +207 -0
  106. package/src/models/RepoCommitSummary.ts +119 -0
  107. package/src/models/RepoSaveSkipReason.ts +64 -0
  108. package/src/models/RepoSnapshot.ts +100 -0
  109. package/src/models/RepoTreeEntry.ts +101 -0
  110. package/src/models/RepoTreeResponse.ts +100 -0
  111. package/src/models/RepoVersionResponse.ts +154 -0
  112. package/src/models/WorkflowRepoResponse.ts +172 -0
  113. package/src/models/WorkflowRunSnapshot.ts +15 -0
  114. package/src/models/index.ts +12 -2
package/src/apis/index.ts CHANGED
@@ -42,4 +42,5 @@ export * from './UserPermissionsApi';
42
42
  export * from './UsersApi';
43
43
  export * from './WorkflowDefinitionsApi';
44
44
  export * from './WorkflowMemoryApi';
45
+ export * from './WorkflowRepositoryApi';
45
46
  export * from './WorkflowRunsApi';
@@ -57,6 +57,13 @@ export const ErrorResponseCodeEnum = {
57
57
  PayloadTooLarge: 'payload_too_large',
58
58
  UnsupportedMediaType: 'unsupported_media_type',
59
59
  UnprocessableEntity: 'unprocessable_entity',
60
+ RepoHeadMoved: 'repo_head_moved',
61
+ RepoNotFastForward: 'repo_not_fast_forward',
62
+ RepoRunMismatch: 'repo_run_mismatch',
63
+ RepoCommitNotFound: 'repo_commit_not_found',
64
+ RepoInvalidBundle: 'repo_invalid_bundle',
65
+ RepoTooLarge: 'repo_too_large',
66
+ RepoUnsafePath: 'repo_unsafe_path',
60
67
  TooManyRequests: 'too_many_requests',
61
68
  QuotaExceeded: 'quota_exceeded',
62
69
  NotImplemented: 'not_implemented',
@@ -24,31 +24,31 @@ import {
24
24
  /**
25
25
  *
26
26
  * @export
27
- * @interface MemoryChunkResponse
27
+ * @interface MemoryEntryResponse
28
28
  */
29
- export interface MemoryChunkResponse {
29
+ export interface MemoryEntryResponse {
30
30
  /**
31
31
  *
32
32
  * @type {string}
33
- * @memberof MemoryChunkResponse
33
+ * @memberof MemoryEntryResponse
34
34
  */
35
35
  chunkId: string;
36
36
  /**
37
37
  *
38
38
  * @type {MemoryKind}
39
- * @memberof MemoryChunkResponse
39
+ * @memberof MemoryEntryResponse
40
40
  */
41
41
  kind: MemoryKind;
42
42
  /**
43
43
  *
44
44
  * @type {string}
45
- * @memberof MemoryChunkResponse
45
+ * @memberof MemoryEntryResponse
46
46
  */
47
47
  body: string;
48
48
  }
49
49
 
50
50
 
51
- export const MemoryChunkResponsePropertyValidationAttributesMap: {
51
+ export const MemoryEntryResponsePropertyValidationAttributesMap: {
52
52
  [property: string]: {
53
53
  maxLength?: number,
54
54
  minLength?: number,
@@ -67,20 +67,20 @@ export const MemoryChunkResponsePropertyValidationAttributesMap: {
67
67
 
68
68
 
69
69
  /**
70
- * Check if a given object implements the MemoryChunkResponse interface.
70
+ * Check if a given object implements the MemoryEntryResponse interface.
71
71
  */
72
- export function instanceOfMemoryChunkResponse(value: object): value is MemoryChunkResponse {
72
+ export function instanceOfMemoryEntryResponse(value: object): value is MemoryEntryResponse {
73
73
  if (!('chunkId' in value) || value['chunkId'] === undefined) return false;
74
74
  if (!('kind' in value) || value['kind'] === undefined) return false;
75
75
  if (!('body' in value) || value['body'] === undefined) return false;
76
76
  return true;
77
77
  }
78
78
 
79
- export function MemoryChunkResponseFromJSON(json: any): MemoryChunkResponse {
80
- return MemoryChunkResponseFromJSONTyped(json, false);
79
+ export function MemoryEntryResponseFromJSON(json: any): MemoryEntryResponse {
80
+ return MemoryEntryResponseFromJSONTyped(json, false);
81
81
  }
82
82
 
83
- export function MemoryChunkResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MemoryChunkResponse {
83
+ export function MemoryEntryResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MemoryEntryResponse {
84
84
  if (json == null) {
85
85
  return json;
86
86
  }
@@ -92,11 +92,11 @@ export function MemoryChunkResponseFromJSONTyped(json: any, ignoreDiscriminator:
92
92
  };
93
93
  }
94
94
 
95
- export function MemoryChunkResponseToJSON(json: any): MemoryChunkResponse {
96
- return MemoryChunkResponseToJSONTyped(json, false);
95
+ export function MemoryEntryResponseToJSON(json: any): MemoryEntryResponse {
96
+ return MemoryEntryResponseToJSONTyped(json, false);
97
97
  }
98
98
 
99
- export function MemoryChunkResponseToJSONTyped(value?: MemoryChunkResponse | null, ignoreDiscriminator: boolean = false): any {
99
+ export function MemoryEntryResponseToJSONTyped(value?: MemoryEntryResponse | null, ignoreDiscriminator: boolean = false): any {
100
100
  if (value == null) {
101
101
  return value;
102
102
  }
@@ -13,46 +13,46 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime';
16
- import type { MemoryChunkResponse } from './MemoryChunkResponse';
16
+ import type { MemoryEntryResponse } from './MemoryEntryResponse';
17
17
  import {
18
- MemoryChunkResponseFromJSON,
19
- MemoryChunkResponseFromJSONTyped,
20
- MemoryChunkResponseToJSON,
21
- MemoryChunkResponseToJSONTyped,
22
- } from './MemoryChunkResponse';
18
+ MemoryEntryResponseFromJSON,
19
+ MemoryEntryResponseFromJSONTyped,
20
+ MemoryEntryResponseToJSON,
21
+ MemoryEntryResponseToJSONTyped,
22
+ } from './MemoryEntryResponse';
23
23
 
24
24
  /**
25
25
  *
26
26
  * @export
27
- * @interface PaginatedResponseMemoryChunkResponse
27
+ * @interface PaginatedResponseMemoryEntryResponse
28
28
  */
29
- export interface PaginatedResponseMemoryChunkResponse {
29
+ export interface PaginatedResponseMemoryEntryResponse {
30
30
  /**
31
31
  * List of items
32
- * @type {Array<MemoryChunkResponse>}
33
- * @memberof PaginatedResponseMemoryChunkResponse
32
+ * @type {Array<MemoryEntryResponse>}
33
+ * @memberof PaginatedResponseMemoryEntryResponse
34
34
  */
35
- items: Array<MemoryChunkResponse>;
35
+ items: Array<MemoryEntryResponse>;
36
36
  /**
37
37
  * Total number of items
38
38
  * @type {number}
39
- * @memberof PaginatedResponseMemoryChunkResponse
39
+ * @memberof PaginatedResponseMemoryEntryResponse
40
40
  */
41
41
  total: number;
42
42
  /**
43
43
  * Number of items per page
44
44
  * @type {number}
45
- * @memberof PaginatedResponseMemoryChunkResponse
45
+ * @memberof PaginatedResponseMemoryEntryResponse
46
46
  */
47
47
  limit: number;
48
48
  /**
49
49
  * Number of items to skip
50
50
  * @type {number}
51
- * @memberof PaginatedResponseMemoryChunkResponse
51
+ * @memberof PaginatedResponseMemoryEntryResponse
52
52
  */
53
53
  offset: number;
54
54
  }
55
- export const PaginatedResponseMemoryChunkResponsePropertyValidationAttributesMap: {
55
+ export const PaginatedResponseMemoryEntryResponsePropertyValidationAttributesMap: {
56
56
  [property: string]: {
57
57
  maxLength?: number,
58
58
  minLength?: number,
@@ -83,9 +83,9 @@ export const PaginatedResponseMemoryChunkResponsePropertyValidationAttributesMap
83
83
 
84
84
 
85
85
  /**
86
- * Check if a given object implements the PaginatedResponseMemoryChunkResponse interface.
86
+ * Check if a given object implements the PaginatedResponseMemoryEntryResponse interface.
87
87
  */
88
- export function instanceOfPaginatedResponseMemoryChunkResponse(value: object): value is PaginatedResponseMemoryChunkResponse {
88
+ export function instanceOfPaginatedResponseMemoryEntryResponse(value: object): value is PaginatedResponseMemoryEntryResponse {
89
89
  if (!('items' in value) || value['items'] === undefined) return false;
90
90
  if (!('total' in value) || value['total'] === undefined) return false;
91
91
  if (!('limit' in value) || value['limit'] === undefined) return false;
@@ -93,35 +93,35 @@ export function instanceOfPaginatedResponseMemoryChunkResponse(value: object): v
93
93
  return true;
94
94
  }
95
95
 
96
- export function PaginatedResponseMemoryChunkResponseFromJSON(json: any): PaginatedResponseMemoryChunkResponse {
97
- return PaginatedResponseMemoryChunkResponseFromJSONTyped(json, false);
96
+ export function PaginatedResponseMemoryEntryResponseFromJSON(json: any): PaginatedResponseMemoryEntryResponse {
97
+ return PaginatedResponseMemoryEntryResponseFromJSONTyped(json, false);
98
98
  }
99
99
 
100
- export function PaginatedResponseMemoryChunkResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedResponseMemoryChunkResponse {
100
+ export function PaginatedResponseMemoryEntryResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedResponseMemoryEntryResponse {
101
101
  if (json == null) {
102
102
  return json;
103
103
  }
104
104
  return {
105
105
 
106
- 'items': ((json['items'] as Array<any>).map(MemoryChunkResponseFromJSON)),
106
+ 'items': ((json['items'] as Array<any>).map(MemoryEntryResponseFromJSON)),
107
107
  'total': json['total'],
108
108
  'limit': json['limit'],
109
109
  'offset': json['offset'],
110
110
  };
111
111
  }
112
112
 
113
- export function PaginatedResponseMemoryChunkResponseToJSON(json: any): PaginatedResponseMemoryChunkResponse {
114
- return PaginatedResponseMemoryChunkResponseToJSONTyped(json, false);
113
+ export function PaginatedResponseMemoryEntryResponseToJSON(json: any): PaginatedResponseMemoryEntryResponse {
114
+ return PaginatedResponseMemoryEntryResponseToJSONTyped(json, false);
115
115
  }
116
116
 
117
- export function PaginatedResponseMemoryChunkResponseToJSONTyped(value?: PaginatedResponseMemoryChunkResponse | null, ignoreDiscriminator: boolean = false): any {
117
+ export function PaginatedResponseMemoryEntryResponseToJSONTyped(value?: PaginatedResponseMemoryEntryResponse | null, ignoreDiscriminator: boolean = false): any {
118
118
  if (value == null) {
119
119
  return value;
120
120
  }
121
121
 
122
122
  return {
123
123
 
124
- 'items': ((value['items'] as Array<any>).map(MemoryChunkResponseToJSON)),
124
+ 'items': ((value['items'] as Array<any>).map(MemoryEntryResponseToJSON)),
125
125
  'total': value['total'],
126
126
  'limit': value['limit'],
127
127
  'offset': value['offset'],
@@ -0,0 +1,130 @@
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 { RepoVersionResponse } from './RepoVersionResponse';
17
+ import {
18
+ RepoVersionResponseFromJSON,
19
+ RepoVersionResponseFromJSONTyped,
20
+ RepoVersionResponseToJSON,
21
+ RepoVersionResponseToJSONTyped,
22
+ } from './RepoVersionResponse';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface PaginatedResponseRepoVersionResponse
28
+ */
29
+ export interface PaginatedResponseRepoVersionResponse {
30
+ /**
31
+ * List of items
32
+ * @type {Array<RepoVersionResponse>}
33
+ * @memberof PaginatedResponseRepoVersionResponse
34
+ */
35
+ items: Array<RepoVersionResponse>;
36
+ /**
37
+ * Total number of items
38
+ * @type {number}
39
+ * @memberof PaginatedResponseRepoVersionResponse
40
+ */
41
+ total: number;
42
+ /**
43
+ * Number of items per page
44
+ * @type {number}
45
+ * @memberof PaginatedResponseRepoVersionResponse
46
+ */
47
+ limit: number;
48
+ /**
49
+ * Number of items to skip
50
+ * @type {number}
51
+ * @memberof PaginatedResponseRepoVersionResponse
52
+ */
53
+ offset: number;
54
+ }
55
+ export const PaginatedResponseRepoVersionResponsePropertyValidationAttributesMap: {
56
+ [property: string]: {
57
+ maxLength?: number,
58
+ minLength?: number,
59
+ pattern?: string,
60
+ maximum?: number,
61
+ exclusiveMaximum?: boolean,
62
+ minimum?: number,
63
+ exclusiveMinimum?: boolean,
64
+ multipleOf?: number,
65
+ maxItems?: number,
66
+ minItems?: number,
67
+ uniqueItems?: boolean
68
+ }
69
+ } = {
70
+ total: {
71
+ minimum: 0,
72
+ exclusiveMinimum: false,
73
+ },
74
+ limit: {
75
+ minimum: 1,
76
+ exclusiveMinimum: false,
77
+ },
78
+ offset: {
79
+ minimum: 0,
80
+ exclusiveMinimum: false,
81
+ },
82
+ }
83
+
84
+
85
+ /**
86
+ * Check if a given object implements the PaginatedResponseRepoVersionResponse interface.
87
+ */
88
+ export function instanceOfPaginatedResponseRepoVersionResponse(value: object): value is PaginatedResponseRepoVersionResponse {
89
+ if (!('items' in value) || value['items'] === undefined) return false;
90
+ if (!('total' in value) || value['total'] === undefined) return false;
91
+ if (!('limit' in value) || value['limit'] === undefined) return false;
92
+ if (!('offset' in value) || value['offset'] === undefined) return false;
93
+ return true;
94
+ }
95
+
96
+ export function PaginatedResponseRepoVersionResponseFromJSON(json: any): PaginatedResponseRepoVersionResponse {
97
+ return PaginatedResponseRepoVersionResponseFromJSONTyped(json, false);
98
+ }
99
+
100
+ export function PaginatedResponseRepoVersionResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedResponseRepoVersionResponse {
101
+ if (json == null) {
102
+ return json;
103
+ }
104
+ return {
105
+
106
+ 'items': ((json['items'] as Array<any>).map(RepoVersionResponseFromJSON)),
107
+ 'total': json['total'],
108
+ 'limit': json['limit'],
109
+ 'offset': json['offset'],
110
+ };
111
+ }
112
+
113
+ export function PaginatedResponseRepoVersionResponseToJSON(json: any): PaginatedResponseRepoVersionResponse {
114
+ return PaginatedResponseRepoVersionResponseToJSONTyped(json, false);
115
+ }
116
+
117
+ export function PaginatedResponseRepoVersionResponseToJSONTyped(value?: PaginatedResponseRepoVersionResponse | null, ignoreDiscriminator: boolean = false): any {
118
+ if (value == null) {
119
+ return value;
120
+ }
121
+
122
+ return {
123
+
124
+ 'items': ((value['items'] as Array<any>).map(RepoVersionResponseToJSON)),
125
+ 'total': value['total'],
126
+ 'limit': value['limit'],
127
+ 'offset': value['offset'],
128
+ };
129
+ }
130
+
@@ -0,0 +1,113 @@
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 { RepoSaveSkipReason } from './RepoSaveSkipReason';
17
+ import {
18
+ RepoSaveSkipReasonFromJSON,
19
+ RepoSaveSkipReasonFromJSONTyped,
20
+ RepoSaveSkipReasonToJSON,
21
+ RepoSaveSkipReasonToJSONTyped,
22
+ } from './RepoSaveSkipReason';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface RecordRepoSaveSkipRequest
28
+ */
29
+ export interface RecordRepoSaveSkipRequest {
30
+ /**
31
+ * The run whose turn produced the changes.
32
+ * @type {string}
33
+ * @memberof RecordRepoSaveSkipRequest
34
+ */
35
+ runId: string;
36
+ /**
37
+ *
38
+ * @type {RepoSaveSkipReason}
39
+ * @memberof RecordRepoSaveSkipRequest
40
+ */
41
+ reason: RepoSaveSkipReason;
42
+ /**
43
+ * A machine-readable code adding context, e.g. the refusal code (`repo_too_large`) or `commits_not_on_main`; never free text.
44
+ * @type {string}
45
+ * @memberof RecordRepoSaveSkipRequest
46
+ */
47
+ detail?: string | null;
48
+ }
49
+
50
+
51
+ export const RecordRepoSaveSkipRequestPropertyValidationAttributesMap: {
52
+ [property: string]: {
53
+ maxLength?: number,
54
+ minLength?: number,
55
+ pattern?: string,
56
+ maximum?: number,
57
+ exclusiveMaximum?: boolean,
58
+ minimum?: number,
59
+ exclusiveMinimum?: boolean,
60
+ multipleOf?: number,
61
+ maxItems?: number,
62
+ minItems?: number,
63
+ uniqueItems?: boolean
64
+ }
65
+ } = {
66
+ detail: {
67
+ pattern: '/^[a-z0-9_]{1,64}$/',
68
+ },
69
+ }
70
+
71
+
72
+ /**
73
+ * Check if a given object implements the RecordRepoSaveSkipRequest interface.
74
+ */
75
+ export function instanceOfRecordRepoSaveSkipRequest(value: object): value is RecordRepoSaveSkipRequest {
76
+ if (!('runId' in value) || value['runId'] === undefined) return false;
77
+ if (!('reason' in value) || value['reason'] === undefined) return false;
78
+ return true;
79
+ }
80
+
81
+ export function RecordRepoSaveSkipRequestFromJSON(json: any): RecordRepoSaveSkipRequest {
82
+ return RecordRepoSaveSkipRequestFromJSONTyped(json, false);
83
+ }
84
+
85
+ export function RecordRepoSaveSkipRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecordRepoSaveSkipRequest {
86
+ if (json == null) {
87
+ return json;
88
+ }
89
+ return {
90
+
91
+ 'runId': json['run_id'],
92
+ 'reason': RepoSaveSkipReasonFromJSON(json['reason']),
93
+ 'detail': json['detail'] == null ? undefined : json['detail'],
94
+ };
95
+ }
96
+
97
+ export function RecordRepoSaveSkipRequestToJSON(json: any): RecordRepoSaveSkipRequest {
98
+ return RecordRepoSaveSkipRequestToJSONTyped(json, false);
99
+ }
100
+
101
+ export function RecordRepoSaveSkipRequestToJSONTyped(value?: RecordRepoSaveSkipRequest | null, ignoreDiscriminator: boolean = false): any {
102
+ if (value == null) {
103
+ return value;
104
+ }
105
+
106
+ return {
107
+
108
+ 'run_id': value['runId'],
109
+ 'reason': RepoSaveSkipReasonToJSON(value['reason']),
110
+ 'detail': value['detail'],
111
+ };
112
+ }
113
+
@@ -0,0 +1,207 @@
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 { RepoTreeEntry } from './RepoTreeEntry';
17
+ import {
18
+ RepoTreeEntryFromJSON,
19
+ RepoTreeEntryFromJSONTyped,
20
+ RepoTreeEntryToJSON,
21
+ RepoTreeEntryToJSONTyped,
22
+ } from './RepoTreeEntry';
23
+
24
+ /**
25
+ * A retained run branch, independently of whether it reached main.
26
+ * @export
27
+ * @interface RepoBranchResponse
28
+ */
29
+ export interface RepoBranchResponse {
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof RepoBranchResponse
34
+ */
35
+ versionId: string;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof RepoBranchResponse
40
+ */
41
+ headSha: string;
42
+ /**
43
+ *
44
+ * @type {string}
45
+ * @memberof RepoBranchResponse
46
+ */
47
+ previousHeadSha: string | null;
48
+ /**
49
+ *
50
+ * @type {number}
51
+ * @memberof RepoBranchResponse
52
+ */
53
+ commitsAdded: number;
54
+ /**
55
+ *
56
+ * @type {string}
57
+ * @memberof RepoBranchResponse
58
+ */
59
+ runId: string | null;
60
+ /**
61
+ *
62
+ * @type {string}
63
+ * @memberof RepoBranchResponse
64
+ */
65
+ savedByUserId: string;
66
+ /**
67
+ *
68
+ * @type {Date}
69
+ * @memberof RepoBranchResponse
70
+ */
71
+ savedAt: Date;
72
+ /**
73
+ *
74
+ * @type {string}
75
+ * @memberof RepoBranchResponse
76
+ */
77
+ instructionVersionId: string | null;
78
+ /**
79
+ * Retained run-branch version this publication integrated.
80
+ * @type {string}
81
+ * @memberof RepoBranchResponse
82
+ */
83
+ candidateVersionId?: string | null;
84
+ /**
85
+ *
86
+ * @type {string}
87
+ * @memberof RepoBranchResponse
88
+ */
89
+ branch: string;
90
+ /**
91
+ *
92
+ * @type {string}
93
+ * @memberof RepoBranchResponse
94
+ */
95
+ baseVersionId: string | null;
96
+ /**
97
+ *
98
+ * @type {string}
99
+ * @memberof RepoBranchResponse
100
+ */
101
+ integratedVersionId: string | null;
102
+ /**
103
+ *
104
+ * @type {string}
105
+ * @memberof RepoBranchResponse
106
+ */
107
+ integratedHeadSha: string | null;
108
+ /**
109
+ *
110
+ * @type {Array<RepoTreeEntry>}
111
+ * @memberof RepoBranchResponse
112
+ */
113
+ files: Array<RepoTreeEntry>;
114
+ }
115
+ export const RepoBranchResponsePropertyValidationAttributesMap: {
116
+ [property: string]: {
117
+ maxLength?: number,
118
+ minLength?: number,
119
+ pattern?: string,
120
+ maximum?: number,
121
+ exclusiveMaximum?: boolean,
122
+ minimum?: number,
123
+ exclusiveMinimum?: boolean,
124
+ multipleOf?: number,
125
+ maxItems?: number,
126
+ minItems?: number,
127
+ uniqueItems?: boolean
128
+ }
129
+ } = {
130
+ }
131
+
132
+
133
+ /**
134
+ * Check if a given object implements the RepoBranchResponse interface.
135
+ */
136
+ export function instanceOfRepoBranchResponse(value: object): value is RepoBranchResponse {
137
+ if (!('versionId' in value) || value['versionId'] === undefined) return false;
138
+ if (!('headSha' in value) || value['headSha'] === undefined) return false;
139
+ if (!('previousHeadSha' in value) || value['previousHeadSha'] === undefined) return false;
140
+ if (!('commitsAdded' in value) || value['commitsAdded'] === undefined) return false;
141
+ if (!('runId' in value) || value['runId'] === undefined) return false;
142
+ if (!('savedByUserId' in value) || value['savedByUserId'] === undefined) return false;
143
+ if (!('savedAt' in value) || value['savedAt'] === undefined) return false;
144
+ if (!('instructionVersionId' in value) || value['instructionVersionId'] === undefined) return false;
145
+ if (!('branch' in value) || value['branch'] === undefined) return false;
146
+ if (!('baseVersionId' in value) || value['baseVersionId'] === undefined) return false;
147
+ if (!('integratedVersionId' in value) || value['integratedVersionId'] === undefined) return false;
148
+ if (!('integratedHeadSha' in value) || value['integratedHeadSha'] === undefined) return false;
149
+ if (!('files' in value) || value['files'] === undefined) return false;
150
+ return true;
151
+ }
152
+
153
+ export function RepoBranchResponseFromJSON(json: any): RepoBranchResponse {
154
+ return RepoBranchResponseFromJSONTyped(json, false);
155
+ }
156
+
157
+ export function RepoBranchResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RepoBranchResponse {
158
+ if (json == null) {
159
+ return json;
160
+ }
161
+ return {
162
+
163
+ 'versionId': json['version_id'],
164
+ 'headSha': json['head_sha'],
165
+ 'previousHeadSha': json['previous_head_sha'],
166
+ 'commitsAdded': json['commits_added'],
167
+ 'runId': json['run_id'],
168
+ 'savedByUserId': json['saved_by_user_id'],
169
+ 'savedAt': (new Date(json['saved_at'])),
170
+ 'instructionVersionId': json['instruction_version_id'],
171
+ 'candidateVersionId': json['candidate_version_id'] == null ? undefined : json['candidate_version_id'],
172
+ 'branch': json['branch'],
173
+ 'baseVersionId': json['base_version_id'],
174
+ 'integratedVersionId': json['integrated_version_id'],
175
+ 'integratedHeadSha': json['integrated_head_sha'],
176
+ 'files': ((json['files'] as Array<any>).map(RepoTreeEntryFromJSON)),
177
+ };
178
+ }
179
+
180
+ export function RepoBranchResponseToJSON(json: any): RepoBranchResponse {
181
+ return RepoBranchResponseToJSONTyped(json, false);
182
+ }
183
+
184
+ export function RepoBranchResponseToJSONTyped(value?: RepoBranchResponse | null, ignoreDiscriminator: boolean = false): any {
185
+ if (value == null) {
186
+ return value;
187
+ }
188
+
189
+ return {
190
+
191
+ 'version_id': value['versionId'],
192
+ 'head_sha': value['headSha'],
193
+ 'previous_head_sha': value['previousHeadSha'],
194
+ 'commits_added': value['commitsAdded'],
195
+ 'run_id': value['runId'],
196
+ 'saved_by_user_id': value['savedByUserId'],
197
+ 'saved_at': value['savedAt'].toISOString(),
198
+ 'instruction_version_id': value['instructionVersionId'],
199
+ 'candidate_version_id': value['candidateVersionId'],
200
+ 'branch': value['branch'],
201
+ 'base_version_id': value['baseVersionId'],
202
+ 'integrated_version_id': value['integratedVersionId'],
203
+ 'integrated_head_sha': value['integratedHeadSha'],
204
+ 'files': ((value['files'] as Array<any>).map(RepoTreeEntryToJSON)),
205
+ };
206
+ }
207
+