@agent-os-sdk/client 0.9.26 → 0.9.28

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 (209) hide show
  1. package/dist/client/AgentOsClient.d.ts +141 -0
  2. package/dist/client/AgentOsClient.d.ts.map +1 -0
  3. package/{src/client/AgentOsClient.ts → dist/client/AgentOsClient.js} +61 -105
  4. package/dist/client/HttpRequestBuilder.d.ts +50 -0
  5. package/dist/client/HttpRequestBuilder.d.ts.map +1 -0
  6. package/{src/client/HttpRequestBuilder.ts → dist/client/HttpRequestBuilder.js} +9 -41
  7. package/{src/client/OperationContext.ts → dist/client/OperationContext.d.ts} +6 -9
  8. package/dist/client/OperationContext.d.ts.map +1 -0
  9. package/dist/client/OperationContext.js +13 -0
  10. package/dist/client/OperationContextProvider.d.ts +54 -0
  11. package/dist/client/OperationContextProvider.d.ts.map +1 -0
  12. package/{src/client/OperationContextProvider.ts → dist/client/OperationContextProvider.js} +17 -35
  13. package/{src/client/auth.ts → dist/client/auth.d.ts} +29 -65
  14. package/dist/client/auth.d.ts.map +1 -0
  15. package/dist/client/auth.js +38 -0
  16. package/dist/client/config.d.ts +49 -0
  17. package/dist/client/config.d.ts.map +1 -0
  18. package/{src/client/config.ts → dist/client/config.js} +5 -43
  19. package/dist/client/helpers.d.ts +63 -0
  20. package/dist/client/helpers.d.ts.map +1 -0
  21. package/{src/client/helpers.ts → dist/client/helpers.js} +9 -52
  22. package/dist/client/pagination.d.ts +105 -0
  23. package/dist/client/pagination.d.ts.map +1 -0
  24. package/{src/client/pagination.ts → dist/client/pagination.js} +15 -116
  25. package/dist/client/raw.d.ts +277 -0
  26. package/dist/client/raw.d.ts.map +1 -0
  27. package/dist/client/raw.js +337 -0
  28. package/dist/client/retry.d.ts +37 -0
  29. package/dist/client/retry.d.ts.map +1 -0
  30. package/{src/client/retry.ts → dist/client/retry.js} +13 -55
  31. package/dist/client/sanitize.d.ts +19 -0
  32. package/dist/client/sanitize.d.ts.map +1 -0
  33. package/{src/client/sanitize.ts → dist/client/sanitize.js} +4 -7
  34. package/dist/client/timeout.d.ts +26 -0
  35. package/dist/client/timeout.d.ts.map +1 -0
  36. package/{src/client/timeout.ts → dist/client/timeout.js} +10 -18
  37. package/dist/errors/factory.d.ts +22 -0
  38. package/dist/errors/factory.d.ts.map +1 -0
  39. package/{src/errors/factory.ts → dist/errors/factory.js} +18 -57
  40. package/dist/errors/index.d.ts +210 -0
  41. package/dist/errors/index.d.ts.map +1 -0
  42. package/{src/errors/index.ts → dist/errors/index.js} +74 -156
  43. package/{src/generated/client.ts → dist/generated/client.d.ts} +5 -17
  44. package/dist/generated/client.d.ts.map +1 -0
  45. package/dist/generated/client.js +15 -0
  46. package/{src/generated/index.ts → dist/generated/index.d.ts} +1 -1
  47. package/dist/generated/index.d.ts.map +1 -0
  48. package/dist/generated/index.js +1 -0
  49. package/{src/generated/openapi.ts → dist/generated/openapi.d.ts} +1 -1
  50. package/dist/generated/openapi.d.ts.map +1 -0
  51. package/dist/generated/openapi.js +5 -0
  52. package/dist/index.d.ts +69 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/{src/index.ts → dist/index.js} +13 -63
  55. package/dist/modules/a2a.d.ts +48 -0
  56. package/dist/modules/a2a.d.ts.map +1 -0
  57. package/dist/modules/a2a.js +37 -0
  58. package/dist/modules/agents.d.ts +346 -0
  59. package/dist/modules/agents.d.ts.map +1 -0
  60. package/dist/modules/agents.js +296 -0
  61. package/dist/modules/apiTokens.d.ts +62 -0
  62. package/dist/modules/apiTokens.d.ts.map +1 -0
  63. package/dist/modules/apiTokens.js +56 -0
  64. package/dist/modules/approvals.d.ts +77 -0
  65. package/dist/modules/approvals.d.ts.map +1 -0
  66. package/dist/modules/approvals.js +91 -0
  67. package/dist/modules/audit.d.ts +78 -0
  68. package/dist/modules/audit.d.ts.map +1 -0
  69. package/{src/modules/audit.ts → dist/modules/audit.js} +23 -74
  70. package/{src/modules/auth.ts → dist/modules/auth.d.ts} +6 -11
  71. package/dist/modules/auth.d.ts.map +1 -0
  72. package/dist/modules/auth.js +22 -0
  73. package/dist/modules/builder.d.ts +242 -0
  74. package/dist/modules/builder.d.ts.map +1 -0
  75. package/dist/modules/builder.js +248 -0
  76. package/dist/modules/catalog.d.ts +142 -0
  77. package/dist/modules/catalog.d.ts.map +1 -0
  78. package/dist/modules/catalog.js +136 -0
  79. package/dist/modules/chatwoot.d.ts +59 -0
  80. package/dist/modules/chatwoot.d.ts.map +1 -0
  81. package/dist/modules/chatwoot.js +200 -0
  82. package/dist/modules/checkpoints.d.ts +62 -0
  83. package/dist/modules/checkpoints.d.ts.map +1 -0
  84. package/dist/modules/checkpoints.js +48 -0
  85. package/dist/modules/contracts.d.ts +48 -0
  86. package/dist/modules/contracts.d.ts.map +1 -0
  87. package/dist/modules/contracts.js +25 -0
  88. package/dist/modules/credentials.d.ts +105 -0
  89. package/dist/modules/credentials.d.ts.map +1 -0
  90. package/dist/modules/credentials.js +135 -0
  91. package/dist/modules/crons.d.ts +73 -0
  92. package/dist/modules/crons.d.ts.map +1 -0
  93. package/dist/modules/crons.js +67 -0
  94. package/dist/modules/datasets.d.ts +80 -0
  95. package/dist/modules/datasets.d.ts.map +1 -0
  96. package/dist/modules/datasets.js +91 -0
  97. package/{src/modules/evaluation.ts → dist/modules/evaluation.d.ts} +23 -109
  98. package/dist/modules/evaluation.d.ts.map +1 -0
  99. package/dist/modules/evaluation.js +108 -0
  100. package/dist/modules/files.d.ts +89 -0
  101. package/dist/modules/files.d.ts.map +1 -0
  102. package/dist/modules/files.js +133 -0
  103. package/dist/modules/graphs.d.ts +120 -0
  104. package/dist/modules/graphs.d.ts.map +1 -0
  105. package/dist/modules/graphs.js +69 -0
  106. package/{src/modules/improvements.ts → dist/modules/improvements.d.ts} +8 -27
  107. package/dist/modules/improvements.d.ts.map +1 -0
  108. package/dist/modules/improvements.js +27 -0
  109. package/dist/modules/info.d.ts +76 -0
  110. package/dist/modules/info.d.ts.map +1 -0
  111. package/{src/modules/info.ts → dist/modules/info.js} +16 -66
  112. package/dist/modules/knowledge.d.ts +91 -0
  113. package/dist/modules/knowledge.d.ts.map +1 -0
  114. package/dist/modules/knowledge.js +80 -0
  115. package/{src/modules/me.ts → dist/modules/me.d.ts} +7 -23
  116. package/dist/modules/me.d.ts.map +1 -0
  117. package/dist/modules/me.js +28 -0
  118. package/dist/modules/members.d.ts +124 -0
  119. package/dist/modules/members.d.ts.map +1 -0
  120. package/dist/modules/members.js +142 -0
  121. package/dist/modules/memberships.d.ts +25 -0
  122. package/dist/modules/memberships.d.ts.map +1 -0
  123. package/dist/modules/memberships.js +20 -0
  124. package/{src/modules/metaAgent.ts → dist/modules/metaAgent.d.ts} +8 -44
  125. package/dist/modules/metaAgent.d.ts.map +1 -0
  126. package/dist/modules/metaAgent.js +32 -0
  127. package/dist/modules/metrics.d.ts +20 -0
  128. package/dist/modules/metrics.d.ts.map +1 -0
  129. package/{src/modules/metrics.ts → dist/modules/metrics.js} +7 -14
  130. package/dist/modules/observability.d.ts +19 -0
  131. package/dist/modules/observability.d.ts.map +1 -0
  132. package/dist/modules/observability.js +14 -0
  133. package/dist/modules/playground.d.ts +42 -0
  134. package/dist/modules/playground.d.ts.map +1 -0
  135. package/dist/modules/playground.js +48 -0
  136. package/dist/modules/presets.d.ts +32 -0
  137. package/dist/modules/presets.d.ts.map +1 -0
  138. package/dist/modules/presets.js +199 -0
  139. package/dist/modules/prompts.d.ts +87 -0
  140. package/dist/modules/prompts.d.ts.map +1 -0
  141. package/dist/modules/prompts.js +87 -0
  142. package/dist/modules/roles.d.ts +64 -0
  143. package/dist/modules/roles.d.ts.map +1 -0
  144. package/dist/modules/roles.js +79 -0
  145. package/dist/modules/runs.d.ts +451 -0
  146. package/dist/modules/runs.d.ts.map +1 -0
  147. package/{src/modules/runs.ts → dist/modules/runs.js} +96 -438
  148. package/dist/modules/store.d.ts +37 -0
  149. package/dist/modules/store.d.ts.map +1 -0
  150. package/dist/modules/store.js +48 -0
  151. package/{src/modules/templates.ts → dist/modules/templates.d.ts} +8 -32
  152. package/dist/modules/templates.d.ts.map +1 -0
  153. package/dist/modules/templates.js +26 -0
  154. package/dist/modules/tenants.d.ts +49 -0
  155. package/dist/modules/tenants.d.ts.map +1 -0
  156. package/dist/modules/tenants.js +56 -0
  157. package/dist/modules/threads.d.ts +205 -0
  158. package/dist/modules/threads.d.ts.map +1 -0
  159. package/dist/modules/threads.js +225 -0
  160. package/dist/modules/tools.d.ts +62 -0
  161. package/dist/modules/tools.d.ts.map +1 -0
  162. package/dist/modules/tools.js +45 -0
  163. package/dist/modules/traces.d.ts +89 -0
  164. package/dist/modules/traces.d.ts.map +1 -0
  165. package/dist/modules/traces.js +65 -0
  166. package/{src/modules/triggers.ts → dist/modules/triggers.d.ts} +24 -153
  167. package/dist/modules/triggers.d.ts.map +1 -0
  168. package/dist/modules/triggers.js +176 -0
  169. package/{src/modules/usage.ts → dist/modules/usage.d.ts} +14 -46
  170. package/dist/modules/usage.d.ts.map +1 -0
  171. package/dist/modules/usage.js +43 -0
  172. package/dist/modules/vectorStores.d.ts +100 -0
  173. package/dist/modules/vectorStores.d.ts.map +1 -0
  174. package/dist/modules/vectorStores.js +159 -0
  175. package/dist/modules/workspaces.d.ts +138 -0
  176. package/dist/modules/workspaces.d.ts.map +1 -0
  177. package/dist/modules/workspaces.js +121 -0
  178. package/dist/sse/client.d.ts +140 -0
  179. package/dist/sse/client.d.ts.map +1 -0
  180. package/{src/sse/client.ts → dist/sse/client.js} +24 -100
  181. package/package.json +8 -15
  182. package/src/client/raw.ts +0 -609
  183. package/src/generated/swagger.json +0 -17014
  184. package/src/modules/a2a.ts +0 -64
  185. package/src/modules/agents.ts +0 -604
  186. package/src/modules/apiTokens.ts +0 -101
  187. package/src/modules/approvals.ts +0 -151
  188. package/src/modules/catalog.ts +0 -241
  189. package/src/modules/chatwoot.ts +0 -242
  190. package/src/modules/checkpoints.ts +0 -87
  191. package/src/modules/contracts.ts +0 -80
  192. package/src/modules/credentials.ts +0 -216
  193. package/src/modules/crons.ts +0 -115
  194. package/src/modules/datasets.ts +0 -142
  195. package/src/modules/files.ts +0 -208
  196. package/src/modules/members.ts +0 -199
  197. package/src/modules/memberships.ts +0 -42
  198. package/src/modules/observability.ts +0 -28
  199. package/src/modules/playground.ts +0 -68
  200. package/src/modules/presets.ts +0 -246
  201. package/src/modules/prompts.ts +0 -147
  202. package/src/modules/roles.ts +0 -112
  203. package/src/modules/store.ts +0 -65
  204. package/src/modules/tenants.ts +0 -79
  205. package/src/modules/threads.ts +0 -343
  206. package/src/modules/tools.ts +0 -91
  207. package/src/modules/traces.ts +0 -133
  208. package/src/modules/vectorStores.ts +0 -257
  209. package/src/modules/workspaces.ts +0 -216
@@ -1,115 +0,0 @@
1
- /**
2
- * Crons Module - Fully Typed
3
- */
4
-
5
- import type { RawClient, APIResponse, components } from "../client/raw.js";
6
-
7
- type CreateCronJobRequest = components["schemas"]["CreateCronJobRequest"];
8
- type UpdateCronJobRequest = components["schemas"]["UpdateCronJobRequest"];
9
-
10
- export interface CronJob {
11
- id: string;
12
- workspace_id: string;
13
- agent_id: string;
14
- agent_version_id?: string;
15
- schedule: string;
16
- input?: unknown;
17
- enabled: boolean;
18
- last_run_at?: string;
19
- next_run_at?: string;
20
- created_at: string;
21
- updated_at: string;
22
- }
23
-
24
- export interface CronJobListResponse {
25
- items: CronJob[];
26
- total: number;
27
- }
28
-
29
- export interface CronTriggerResponse {
30
- run_id: string;
31
- triggered_at: string;
32
- }
33
-
34
- export class CronsModule {
35
- constructor(private client: RawClient, private headers: () => Record<string, string>) { }
36
-
37
- /**
38
- * List all cron jobs.
39
- */
40
- async list(params?: {
41
- workspace_id?: string;
42
- agent_id?: string;
43
- enabled?: boolean;
44
- limit?: number;
45
- offset?: number;
46
- }): Promise<APIResponse<CronJobListResponse>> {
47
- return this.client.GET<CronJobListResponse>("/v1/api/crons", {
48
- params: { query: params },
49
- headers: this.headers(),
50
- });
51
- }
52
-
53
- /**
54
- * Get a cron job by ID.
55
- */
56
- async get(cronId: string): Promise<APIResponse<CronJob>> {
57
- return this.client.GET<CronJob>("/v1/api/crons/{id}", {
58
- params: { path: { id: cronId } },
59
- headers: this.headers(),
60
- });
61
- }
62
-
63
- /**
64
- * Create a new cron job.
65
- */
66
- async create(body: {
67
- workspace_id?: string;
68
- agent_id: string;
69
- agent_version_id?: string;
70
- schedule: string;
71
- input?: unknown;
72
- enabled?: boolean;
73
- }): Promise<APIResponse<CronJob>> {
74
- return this.client.POST<CronJob>("/v1/api/crons", {
75
- body,
76
- headers: this.headers(),
77
- });
78
- }
79
-
80
- /**
81
- * Update a cron job.
82
- * Uses PATCH per backend CronsController.
83
- */
84
- async update(cronId: string, body: {
85
- schedule?: string;
86
- enabled?: boolean;
87
- input?: unknown;
88
- }): Promise<APIResponse<CronJob>> {
89
- return this.client.PATCH<CronJob>("/v1/api/crons/{id}", {
90
- params: { path: { id: cronId } },
91
- body,
92
- headers: this.headers(),
93
- });
94
- }
95
-
96
- /**
97
- * Delete a cron job.
98
- */
99
- async delete(cronId: string): Promise<APIResponse<void>> {
100
- return this.client.DELETE<void>("/v1/api/crons/{id}", {
101
- params: { path: { id: cronId } },
102
- headers: this.headers(),
103
- });
104
- }
105
-
106
- /**
107
- * Manually trigger a cron job.
108
- */
109
- async trigger(cronId: string): Promise<APIResponse<CronTriggerResponse>> {
110
- return this.client.POST<CronTriggerResponse>("/v1/api/crons/{id}/trigger", {
111
- params: { path: { id: cronId } },
112
- headers: this.headers(),
113
- });
114
- }
115
- }
@@ -1,142 +0,0 @@
1
- /**
2
- * Datasets Module — Evaluation datasets and examples.
3
- *
4
- * Endpoints: /v1/api/datasets
5
- */
6
-
7
- import type { RawClient, APIResponse } from "../client/raw.js";
8
-
9
- // =============================================================================
10
- // Types
11
- // =============================================================================
12
-
13
- export interface Dataset {
14
- id: string;
15
- name: string;
16
- description?: string;
17
- agent_id?: string;
18
- example_count: number;
19
- created_at: string;
20
- updated_at: string;
21
- }
22
-
23
- export interface DatasetExample {
24
- id: string;
25
- dataset_id: string;
26
- input: unknown;
27
- expected_output?: unknown;
28
- metadata?: unknown;
29
- created_at: string;
30
- }
31
-
32
- export interface ExampleInput {
33
- input: unknown;
34
- expected_output?: unknown;
35
- metadata?: unknown;
36
- }
37
-
38
- // =============================================================================
39
- // Module
40
- // =============================================================================
41
-
42
- export class DatasetsModule {
43
- constructor(private client: RawClient, private headers: () => Record<string, string>) { }
44
-
45
- /**
46
- * List datasets in the workspace.
47
- */
48
- async list(params?: {
49
- skip?: number;
50
- take?: number;
51
- }): Promise<APIResponse<Dataset[]>> {
52
- return this.client.GET<Dataset[]>("/v1/api/datasets", {
53
- params: { query: params },
54
- headers: this.headers(),
55
- });
56
- }
57
-
58
- /**
59
- * Get a specific dataset by ID.
60
- */
61
- async get(datasetId: string): Promise<APIResponse<Dataset>> {
62
- return this.client.GET<Dataset>("/v1/api/datasets/{id}", {
63
- params: { path: { id: datasetId } },
64
- headers: this.headers(),
65
- });
66
- }
67
-
68
- /**
69
- * Create a new evaluation dataset.
70
- */
71
- async create(body: {
72
- name: string;
73
- description?: string;
74
- agent_id?: string;
75
- }): Promise<APIResponse<Dataset>> {
76
- return this.client.POST<Dataset>("/v1/api/datasets", {
77
- body,
78
- headers: this.headers(),
79
- });
80
- }
81
-
82
- /**
83
- * Update a dataset (partial update).
84
- */
85
- async update(datasetId: string, body: {
86
- name?: string;
87
- description?: string;
88
- agent_id?: string;
89
- }): Promise<APIResponse<Dataset>> {
90
- return this.client.PATCH<Dataset>("/v1/api/datasets/{id}", {
91
- params: { path: { id: datasetId } },
92
- body,
93
- headers: this.headers(),
94
- });
95
- }
96
-
97
- /**
98
- * Soft delete a dataset.
99
- */
100
- async delete(datasetId: string): Promise<APIResponse<void>> {
101
- return this.client.DELETE<void>("/v1/api/datasets/{id}", {
102
- params: { path: { id: datasetId } },
103
- headers: this.headers(),
104
- });
105
- }
106
-
107
- // ======================== Examples ========================
108
-
109
- /**
110
- * List examples for a dataset.
111
- */
112
- async listExamples(datasetId: string, params?: {
113
- skip?: number;
114
- take?: number;
115
- }): Promise<APIResponse<DatasetExample[]>> {
116
- return this.client.GET<DatasetExample[]>("/v1/api/datasets/{id}/examples", {
117
- params: { path: { id: datasetId }, query: params },
118
- headers: this.headers(),
119
- });
120
- }
121
-
122
- /**
123
- * Add examples to a dataset (batch).
124
- */
125
- async addExamples(datasetId: string, examples: ExampleInput[]): Promise<APIResponse<DatasetExample[]>> {
126
- return this.client.POST<DatasetExample[]>("/v1/api/datasets/{id}/examples", {
127
- params: { path: { id: datasetId } },
128
- body: { examples },
129
- headers: this.headers(),
130
- });
131
- }
132
-
133
- /**
134
- * Delete a specific example.
135
- */
136
- async deleteExample(datasetId: string, exampleId: string): Promise<APIResponse<void>> {
137
- return this.client.DELETE<void>("/v1/api/datasets/{id}/examples/{exampleId}", {
138
- params: { path: { id: datasetId, exampleId } },
139
- headers: this.headers(),
140
- });
141
- }
142
- }
@@ -1,208 +0,0 @@
1
- /**
2
- * Files Module - Fully Typed
3
- */
4
-
5
- import type { RawClient, APIResponse, components } from "../client/raw.js";
6
-
7
- type FileListItem = components["schemas"]["FileListItem"];
8
- type FileDetail = components["schemas"]["FileDetail"];
9
- type CreatePresignedUploadRequest = components["schemas"]["CreatePresignedUploadRequest"];
10
- type PresignedUploadResponse = components["schemas"]["PresignedUploadResponse"];
11
- type ConfirmUploadRequest = components["schemas"]["ConfirmUploadRequest"];
12
- type FileConfirmResponse = components["schemas"]["FileConfirmResponse"];
13
- type PresignedDownloadResponse = components["schemas"]["PresignedDownloadResponse"];
14
-
15
- export interface StoredFile {
16
- id: string;
17
- filename: string;
18
- content_type: string;
19
- size_bytes: number;
20
- sha256?: string;
21
- status: "pending" | "confirmed" | "deleted";
22
- created_at: string;
23
- updated_at?: string;
24
- }
25
-
26
- export interface FileListResponse {
27
- items: StoredFile[];
28
- total: number;
29
- }
30
-
31
- export interface PresignedUpload {
32
- file_id: string;
33
- upload_url: string;
34
- expires_in: number;
35
- object_key: string;
36
- }
37
-
38
- export interface ConfirmedUpload {
39
- file_id: string;
40
- status: string;
41
- size_bytes: number;
42
- sha256?: string;
43
- }
44
-
45
- export interface PresignedDownload {
46
- file_id: string;
47
- download_url: string;
48
- filename: string;
49
- content_type: string;
50
- size_bytes: number;
51
- expires_in: number;
52
- }
53
-
54
- export class FilesModule {
55
- constructor(private client: RawClient, private headers: () => Record<string, string>) { }
56
-
57
- private resolveWorkspaceId(workspaceId?: string): string {
58
- if (workspaceId && workspaceId.trim().length > 0) {
59
- return workspaceId.trim();
60
- }
61
-
62
- const headers = this.headers();
63
- const fromHeader = headers["X-Workspace-Id"] ?? headers["x-workspace-id"];
64
- if (fromHeader && fromHeader.trim().length > 0) {
65
- return fromHeader.trim();
66
- }
67
-
68
- throw new Error("workspace_id is required (pass workspaceId or set X-Workspace-Id in client headers)");
69
- }
70
-
71
- private static toStoredFile(item: FileListItem | FileDetail): StoredFile {
72
- return {
73
- id: item.id ?? "",
74
- filename: item.filename ?? "",
75
- content_type: item.content_type ?? "application/octet-stream",
76
- size_bytes: item.size_bytes ?? 0,
77
- sha256: "sha256" in item ? item.sha256 ?? undefined : undefined,
78
- status: (item.status ?? "pending") as StoredFile["status"],
79
- created_at: item.created_at ?? "",
80
- updated_at: "updated_at" in item ? item.updated_at ?? undefined : undefined,
81
- };
82
- }
83
-
84
- /**
85
- * List files in a workspace.
86
- */
87
- async list(params?: {
88
- workspace_id?: string;
89
- status?: string;
90
- limit?: number;
91
- offset?: number;
92
- }): Promise<APIResponse<FileListResponse>> {
93
- const workspaceId = this.resolveWorkspaceId(params?.workspace_id);
94
- const response = await this.client.GET<FileListItem[]>("/v1/api/workspaces/{workspaceId}/files", {
95
- params: {
96
- path: { workspaceId },
97
- query: {
98
- status: params?.status,
99
- limit: params?.limit,
100
- offset: params?.offset,
101
- },
102
- },
103
- headers: this.headers(),
104
- });
105
-
106
- const items = Array.isArray(response.data)
107
- ? response.data.map((item) => FilesModule.toStoredFile(item))
108
- : [];
109
-
110
- return {
111
- ...response,
112
- data: {
113
- items,
114
- total: items.length,
115
- },
116
- };
117
- }
118
-
119
- /**
120
- * Get a file by ID.
121
- */
122
- async get(fileId: string, workspaceId?: string): Promise<APIResponse<StoredFile>> {
123
- const resolvedWorkspaceId = this.resolveWorkspaceId(workspaceId);
124
- const response = await this.client.GET<FileDetail>("/v1/api/workspaces/{workspaceId}/files/{fileId}", {
125
- params: { path: { workspaceId: resolvedWorkspaceId, fileId } },
126
- headers: this.headers(),
127
- });
128
-
129
- if (!response.data) {
130
- return response as APIResponse<StoredFile>;
131
- }
132
-
133
- return {
134
- ...response,
135
- data: FilesModule.toStoredFile(response.data),
136
- };
137
- }
138
-
139
- /**
140
- * Create a presigned upload URL.
141
- */
142
- async createUpload(body: {
143
- filename: string;
144
- content_type?: string;
145
- size_bytes?: number;
146
- expected_sha256?: string;
147
- }, workspaceId?: string): Promise<APIResponse<PresignedUpload>> {
148
- const resolvedWorkspaceId = this.resolveWorkspaceId(workspaceId);
149
- const requestBody: CreatePresignedUploadRequest = {
150
- filename: body.filename,
151
- content_type: body.content_type,
152
- size_bytes: body.size_bytes,
153
- expected_sha256: body.expected_sha256,
154
- };
155
- return this.client.POST<PresignedUploadResponse>("/v1/api/workspaces/{workspaceId}/files/presign", {
156
- params: { path: { workspaceId: resolvedWorkspaceId } },
157
- body: requestBody,
158
- headers: this.headers(),
159
- }) as Promise<APIResponse<PresignedUpload>>;
160
- }
161
-
162
- /**
163
- * Confirm an upload.
164
- */
165
- async confirmUpload(fileId: string, sha256?: string, workspaceId?: string): Promise<APIResponse<ConfirmedUpload>> {
166
- const resolvedWorkspaceId = this.resolveWorkspaceId(workspaceId);
167
- const requestBody: ConfirmUploadRequest = { sha256 };
168
- return this.client.POST<FileConfirmResponse>("/v1/api/workspaces/{workspaceId}/files/{fileId}/confirm", {
169
- params: { path: { workspaceId: resolvedWorkspaceId, fileId } },
170
- body: requestBody,
171
- headers: this.headers(),
172
- }) as Promise<APIResponse<ConfirmedUpload>>;
173
- }
174
-
175
- /**
176
- * Get a presigned download URL.
177
- */
178
- async getDownloadUrl(fileId: string, workspaceId?: string): Promise<APIResponse<PresignedDownload>> {
179
- const resolvedWorkspaceId = this.resolveWorkspaceId(workspaceId);
180
- return this.client.GET<PresignedDownloadResponse>("/v1/api/workspaces/{workspaceId}/files/{fileId}/download", {
181
- params: { path: { workspaceId: resolvedWorkspaceId, fileId } },
182
- headers: this.headers(),
183
- }) as Promise<APIResponse<PresignedDownload>>;
184
- }
185
-
186
- /**
187
- * Delete a file.
188
- */
189
- async delete(fileId: string, workspaceId?: string): Promise<APIResponse<void>> {
190
- const resolvedWorkspaceId = this.resolveWorkspaceId(workspaceId);
191
- return this.client.DELETE<void>("/v1/api/workspaces/{workspaceId}/files/{fileId}", {
192
- params: { path: { workspaceId: resolvedWorkspaceId, fileId } },
193
- headers: this.headers(),
194
- });
195
- }
196
-
197
- /**
198
- * Alias for createUpload with explicit semantic name.
199
- */
200
- async createPresignedUpload(body: {
201
- filename: string;
202
- content_type?: string;
203
- size_bytes?: number;
204
- expected_sha256?: string;
205
- }, workspaceId?: string): Promise<APIResponse<PresignedUpload>> {
206
- return this.createUpload(body, workspaceId);
207
- }
208
- }
@@ -1,199 +0,0 @@
1
- /**
2
- * Members Module - Fully Typed
3
- *
4
- * Naming conventions:
5
- * - get* for singular items
6
- * - list* for collections
7
- * - create*, update*, delete* for mutations (NOT remove!)
8
- */
9
-
10
- import type { PaginatedResponse, PaginationParams } from "../client/helpers.js";
11
- import type { APIResponse, RawClient } from "../client/raw.js";
12
-
13
- export interface Member {
14
- id: string;
15
- tenant_id: string;
16
- user_id?: string;
17
- email?: string;
18
- display_name?: string;
19
- avatar_url?: string;
20
- role_id?: string;
21
- role_name?: string;
22
- workspace_ids?: string[];
23
- status: "active" | "pending" | "disabled";
24
- created_at: string;
25
- updated_at: string;
26
- }
27
-
28
- export interface Role {
29
- id: string;
30
- name: string;
31
- is_system: boolean;
32
- permissions?: string[];
33
- created_at?: string;
34
- members_count?: number;
35
- }
36
-
37
- export interface MemberInviteResponse {
38
- member_id: string;
39
- invite_token?: string;
40
- email: string;
41
- }
42
-
43
- export type MemberListResponse = PaginatedResponse<Member>;
44
-
45
- export class MembersModule {
46
- constructor(private client: RawClient, private headers: () => Record<string, string>) { }
47
-
48
- /**
49
- * List all members in the tenant.
50
- */
51
- async list(params?: PaginationParams & {
52
- workspace_id?: string;
53
- role_id?: string;
54
- status?: string;
55
- }): Promise<APIResponse<MemberListResponse>> {
56
- return this.client.GET<MemberListResponse>("/v1/api/members", {
57
- params: { query: params },
58
- headers: this.headers(),
59
- });
60
- }
61
-
62
- /**
63
- * Get a member by ID.
64
- */
65
- async get(memberId: string): Promise<APIResponse<Member>> {
66
- return this.client.GET<Member>("/v1/api/members/{id}", {
67
- params: { path: { id: memberId } },
68
- headers: this.headers(),
69
- });
70
- }
71
-
72
-
73
- /**
74
- * List all roles in the tenant.
75
- */
76
- async listRoles(): Promise<APIResponse<{ items: Role[] }>> {
77
- return this.client.GET<{ items: Role[] }>("/v1/api/roles", {
78
- headers: this.headers(),
79
- });
80
- }
81
-
82
- /**
83
- * Get a role by ID.
84
- */
85
- async getRole(roleId: string): Promise<APIResponse<Role>> {
86
- return this.client.GET<Role>("/v1/api/roles/{id}", {
87
- params: { path: { id: roleId } },
88
- headers: this.headers(),
89
- });
90
- }
91
-
92
- /**
93
- * Create a new custom role.
94
- */
95
- async createRole(body: { name: string; permissions?: string[] }): Promise<APIResponse<Role>> {
96
- return this.client.POST<Role>("/v1/api/roles", {
97
- body,
98
- headers: this.headers(),
99
- });
100
- }
101
-
102
- /**
103
- * Update a custom role.
104
- */
105
- async updateRole(roleId: string, body: { name?: string; permissions?: string[] }): Promise<APIResponse<Role>> {
106
- return this.client.PUT<Role>("/v1/api/roles/{id}", {
107
- params: { path: { id: roleId } },
108
- body,
109
- headers: this.headers(),
110
- });
111
- }
112
-
113
- /**
114
- * Delete a custom role.
115
- */
116
- async deleteRole(roleId: string): Promise<APIResponse<void>> {
117
- return this.client.DELETE<void>("/v1/api/roles/{id}", {
118
- params: { path: { id: roleId } },
119
- headers: this.headers(),
120
- });
121
- }
122
-
123
- /**
124
- * List all available system permissions.
125
- */
126
- async listPermissions(): Promise<APIResponse<{ items: string[] }>> {
127
- return this.client.GET<{ items: string[] }>("/v1/api/roles/permissions", {
128
- headers: this.headers(),
129
- });
130
- }
131
-
132
- /**
133
- * Invite a new member.
134
- */
135
- async invite(body: {
136
- email: string;
137
- role_id?: string;
138
- workspace_ids?: string[];
139
- }): Promise<APIResponse<MemberInviteResponse>> {
140
- return this.client.POST<MemberInviteResponse>("/v1/api/members/invite", {
141
- body,
142
- headers: this.headers(),
143
- });
144
- }
145
-
146
- /**
147
- * Update a member.
148
- */
149
- async update(memberId: string, body: {
150
- role_id?: string;
151
- workspace_ids?: string[];
152
- }): Promise<APIResponse<Member>> {
153
- return this.client.PUT<Member>("/v1/api/members/{id}", {
154
- params: { path: { id: memberId } },
155
- body,
156
- headers: this.headers(),
157
- });
158
- }
159
-
160
- /**
161
- * Remove a member from the tenant.
162
- */
163
- async delete(memberId: string): Promise<APIResponse<void>> {
164
- return this.client.DELETE<void>("/v1/api/members/{id}", {
165
- params: { path: { id: memberId } },
166
- headers: this.headers(),
167
- });
168
- }
169
-
170
- /**
171
- * Resend invitation email.
172
- */
173
- async resendInvite(memberId: string): Promise<APIResponse<void>> {
174
- return this.client.POST<void>("/v1/api/members/{id}/resend-invite", {
175
- params: { path: { id: memberId } },
176
- headers: this.headers(),
177
- });
178
- }
179
-
180
- /**
181
- * Ensure membership exists (auto-create on first access).
182
- * This is used by the frontend for onboarding.
183
- */
184
- async ensure(tenantId?: string): Promise<APIResponse<Member>> {
185
- return this.client.POST<Member>("/v1/api/memberships/ensure", {
186
- body: { tenant_id: tenantId ?? null },
187
- headers: this.headers(),
188
- });
189
- }
190
-
191
- /**
192
- * Seed default permissions (Dev only)
193
- */
194
- async seedDefaults(): Promise<APIResponse<{ message: string }>> {
195
- return this.client.POST<{ message: string }>("/v1/api/roles/seed-defaults", {
196
- headers: this.headers(),
197
- });
198
- }
199
- }
@@ -1,42 +0,0 @@
1
-
2
- import type { RawClient, APIResponse } from "../client/raw.js";
3
-
4
- export interface MembershipResponse {
5
- id: string;
6
- user_id: string;
7
- tenant_id: string;
8
- role_id: string;
9
- role_name?: string;
10
- workspace_id?: string;
11
- workspace_name?: string;
12
- created_at: string;
13
- }
14
-
15
- export interface EnsureMembershipRequest {
16
- tenant_id?: string;
17
- workspace_id?: string;
18
- }
19
-
20
- export class MembershipsModule {
21
- private client: RawClient;
22
-
23
- constructor(client: RawClient) {
24
- this.client = client;
25
- }
26
-
27
- private headers() {
28
- return {
29
- "Content-Type": "application/json",
30
- };
31
- }
32
-
33
- /**
34
- * Ensure the current user has a membership in a tenant (self-provisioning).
35
- */
36
- async ensure(body: EnsureMembershipRequest): Promise<APIResponse<MembershipResponse>> {
37
- return this.client.POST<MembershipResponse>("/v1/api/memberships/ensure", {
38
- body,
39
- headers: this.headers(),
40
- });
41
- }
42
- }