@osva-ai/sdk 0.0.0-stage → 1.1.0-rc.1

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 (128) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +46 -2
  3. package/dist/client.d.ts +50 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +73 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/errors.d.ts +17 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +24 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/http-client.d.ts +44 -0
  12. package/dist/http-client.d.ts.map +1 -0
  13. package/dist/http-client.js +203 -0
  14. package/dist/http-client.js.map +1 -0
  15. package/dist/index.d.ts +4 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +4 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/resources/agents.d.ts +22 -0
  20. package/dist/resources/agents.d.ts.map +1 -0
  21. package/dist/resources/agents.js +43 -0
  22. package/dist/resources/agents.js.map +1 -0
  23. package/dist/resources/api-keys.d.ts +17 -0
  24. package/dist/resources/api-keys.d.ts.map +1 -0
  25. package/dist/resources/api-keys.js +27 -0
  26. package/dist/resources/api-keys.js.map +1 -0
  27. package/dist/resources/approvals.d.ts +14 -0
  28. package/dist/resources/approvals.d.ts.map +1 -0
  29. package/dist/resources/approvals.js +21 -0
  30. package/dist/resources/approvals.js.map +1 -0
  31. package/dist/resources/artifacts.d.ts +25 -0
  32. package/dist/resources/artifacts.d.ts.map +1 -0
  33. package/dist/resources/artifacts.js +57 -0
  34. package/dist/resources/artifacts.js.map +1 -0
  35. package/dist/resources/assignments.d.ts +20 -0
  36. package/dist/resources/assignments.d.ts.map +1 -0
  37. package/dist/resources/assignments.js +46 -0
  38. package/dist/resources/assignments.js.map +1 -0
  39. package/dist/resources/auth.d.ts +14 -0
  40. package/dist/resources/auth.d.ts.map +1 -0
  41. package/dist/resources/auth.js +19 -0
  42. package/dist/resources/auth.js.map +1 -0
  43. package/dist/resources/evaluation.d.ts +32 -0
  44. package/dist/resources/evaluation.d.ts.map +1 -0
  45. package/dist/resources/evaluation.js +71 -0
  46. package/dist/resources/evaluation.js.map +1 -0
  47. package/dist/resources/goals.d.ts +18 -0
  48. package/dist/resources/goals.d.ts.map +1 -0
  49. package/dist/resources/goals.js +34 -0
  50. package/dist/resources/goals.js.map +1 -0
  51. package/dist/resources/knowledge-indexes.d.ts +23 -0
  52. package/dist/resources/knowledge-indexes.d.ts.map +1 -0
  53. package/dist/resources/knowledge-indexes.js +43 -0
  54. package/dist/resources/knowledge-indexes.js.map +1 -0
  55. package/dist/resources/knowledge-sources.d.ts +20 -0
  56. package/dist/resources/knowledge-sources.d.ts.map +1 -0
  57. package/dist/resources/knowledge-sources.js +36 -0
  58. package/dist/resources/knowledge-sources.js.map +1 -0
  59. package/dist/resources/knowledge.d.ts +12 -0
  60. package/dist/resources/knowledge.d.ts.map +1 -0
  61. package/dist/resources/knowledge.js +15 -0
  62. package/dist/resources/knowledge.js.map +1 -0
  63. package/dist/resources/memory-namespaces.d.ts +19 -0
  64. package/dist/resources/memory-namespaces.d.ts.map +1 -0
  65. package/dist/resources/memory-namespaces.js +44 -0
  66. package/dist/resources/memory-namespaces.js.map +1 -0
  67. package/dist/resources/office-roles.d.ts +18 -0
  68. package/dist/resources/office-roles.d.ts.map +1 -0
  69. package/dist/resources/office-roles.js +34 -0
  70. package/dist/resources/office-roles.js.map +1 -0
  71. package/dist/resources/office-teams.d.ts +22 -0
  72. package/dist/resources/office-teams.d.ts.map +1 -0
  73. package/dist/resources/office-teams.js +47 -0
  74. package/dist/resources/office-teams.js.map +1 -0
  75. package/dist/resources/office-workers.d.ts +18 -0
  76. package/dist/resources/office-workers.d.ts.map +1 -0
  77. package/dist/resources/office-workers.js +34 -0
  78. package/dist/resources/office-workers.js.map +1 -0
  79. package/dist/resources/run-observability.d.ts +20 -0
  80. package/dist/resources/run-observability.d.ts.map +1 -0
  81. package/dist/resources/run-observability.js +30 -0
  82. package/dist/resources/run-observability.js.map +1 -0
  83. package/dist/resources/runs.d.ts +28 -0
  84. package/dist/resources/runs.d.ts.map +1 -0
  85. package/dist/resources/runs.js +46 -0
  86. package/dist/resources/runs.js.map +1 -0
  87. package/dist/resources/schedules.d.ts +28 -0
  88. package/dist/resources/schedules.d.ts.map +1 -0
  89. package/dist/resources/schedules.js +48 -0
  90. package/dist/resources/schedules.js.map +1 -0
  91. package/dist/resources/workflow-events.d.ts +12 -0
  92. package/dist/resources/workflow-events.d.ts.map +1 -0
  93. package/dist/resources/workflow-events.js +15 -0
  94. package/dist/resources/workflow-events.js.map +1 -0
  95. package/dist/resources/workflow-runs.d.ts +23 -0
  96. package/dist/resources/workflow-runs.d.ts.map +1 -0
  97. package/dist/resources/workflow-runs.js +34 -0
  98. package/dist/resources/workflow-runs.js.map +1 -0
  99. package/dist/resources/workflows.d.ts +22 -0
  100. package/dist/resources/workflows.d.ts.map +1 -0
  101. package/dist/resources/workflows.js +43 -0
  102. package/dist/resources/workflows.js.map +1 -0
  103. package/dist/runtime/capability-credential.d.ts +17 -0
  104. package/dist/runtime/capability-credential.d.ts.map +1 -0
  105. package/dist/runtime/capability-credential.js +28 -0
  106. package/dist/runtime/capability-credential.js.map +1 -0
  107. package/dist/runtime/context.d.ts +126 -0
  108. package/dist/runtime/context.d.ts.map +1 -0
  109. package/dist/runtime/context.js +322 -0
  110. package/dist/runtime/context.js.map +1 -0
  111. package/dist/runtime/errors.d.ts +15 -0
  112. package/dist/runtime/errors.d.ts.map +1 -0
  113. package/dist/runtime/errors.js +25 -0
  114. package/dist/runtime/errors.js.map +1 -0
  115. package/dist/runtime/handler.d.ts +20 -0
  116. package/dist/runtime/handler.d.ts.map +1 -0
  117. package/dist/runtime/handler.js +69 -0
  118. package/dist/runtime/handler.js.map +1 -0
  119. package/dist/runtime/index.d.ts +6 -0
  120. package/dist/runtime/index.d.ts.map +1 -0
  121. package/dist/runtime/index.js +6 -0
  122. package/dist/runtime/index.js.map +1 -0
  123. package/dist/runtime/node-http.d.ts +11 -0
  124. package/dist/runtime/node-http.d.ts.map +1 -0
  125. package/dist/runtime/node-http.js +99 -0
  126. package/dist/runtime/node-http.js.map +1 -0
  127. package/dist/tsconfig.tsbuildinfo +1 -0
  128. package/package.json +47 -3
@@ -0,0 +1,203 @@
1
+ import { OSVA_REQUEST_ID_HEADER } from "@osva-ai/contracts";
2
+ import { OsvaApiError, OsvaTransportError } from "./errors.js";
3
+ export class OsvaHttpClient {
4
+ baseUrl;
5
+ apiKey;
6
+ timeoutMs;
7
+ fetchImpl;
8
+ constructor(options) {
9
+ this.baseUrl = normalizeBaseUrl(options.baseUrl);
10
+ this.apiKey = options.apiKey;
11
+ this.timeoutMs = options.timeoutMs ?? 30_000;
12
+ this.fetchImpl = options.fetch ?? fetch;
13
+ }
14
+ authHeaders(headers) {
15
+ return {
16
+ authorization: `Bearer ${this.apiKey}`,
17
+ ...headers,
18
+ };
19
+ }
20
+ async request(options) {
21
+ const result = await this.requestWithMeta(options);
22
+ return result.data;
23
+ }
24
+ async requestWithMeta(options) {
25
+ const url = buildUrl(this.baseUrl, options.path, options.query);
26
+ const controller = new AbortController();
27
+ const timer = setTimeout(() => {
28
+ controller.abort();
29
+ }, this.timeoutMs);
30
+ let response;
31
+ try {
32
+ response = await this.fetchImpl(url, {
33
+ method: options.method,
34
+ signal: controller.signal,
35
+ headers: options.body === undefined
36
+ ? this.authHeaders(options.headers)
37
+ : this.authHeaders({
38
+ "content-type": "application/json",
39
+ ...options.headers,
40
+ }),
41
+ body: options.body === undefined ? undefined : JSON.stringify(options.body),
42
+ });
43
+ }
44
+ catch (error) {
45
+ if (isAbortError(error)) {
46
+ throw new OsvaTransportError("OSVA API request timed out.", {
47
+ cause: error,
48
+ });
49
+ }
50
+ throw new OsvaTransportError("OSVA API transport failed.", {
51
+ cause: error,
52
+ });
53
+ }
54
+ finally {
55
+ clearTimeout(timer);
56
+ }
57
+ let body;
58
+ try {
59
+ body = await response.json();
60
+ }
61
+ catch (error) {
62
+ throw new OsvaTransportError("OSVA API returned a non-JSON response.", {
63
+ cause: error,
64
+ });
65
+ }
66
+ const requestId = resolveOsvaRequestId(response.headers, body);
67
+ if (!response.ok) {
68
+ throw new OsvaApiError(response.status, normalizeErrorBody(body), requestId);
69
+ }
70
+ return { data: body, requestId };
71
+ }
72
+ async uploadMultipart(options) {
73
+ const url = buildUrl(this.baseUrl, options.path, undefined);
74
+ const controller = new AbortController();
75
+ const timer = setTimeout(() => {
76
+ controller.abort();
77
+ }, this.timeoutMs);
78
+ let response;
79
+ try {
80
+ response = await this.fetchImpl(url, {
81
+ method: "POST",
82
+ signal: controller.signal,
83
+ headers: this.authHeaders(options.headers),
84
+ body: options.form,
85
+ });
86
+ }
87
+ catch (error) {
88
+ if (isAbortError(error)) {
89
+ throw new OsvaTransportError("OSVA API request timed out.", {
90
+ cause: error,
91
+ });
92
+ }
93
+ throw new OsvaTransportError("OSVA API transport failed.", {
94
+ cause: error,
95
+ });
96
+ }
97
+ finally {
98
+ clearTimeout(timer);
99
+ }
100
+ let body;
101
+ try {
102
+ body = await response.json();
103
+ }
104
+ catch (error) {
105
+ throw new OsvaTransportError("OSVA API returned a non-JSON response.", {
106
+ cause: error,
107
+ });
108
+ }
109
+ if (!response.ok) {
110
+ throw new OsvaApiError(response.status, normalizeErrorBody(body), resolveOsvaRequestId(response.headers, body));
111
+ }
112
+ return body;
113
+ }
114
+ async download(options) {
115
+ const url = buildUrl(this.baseUrl, options.path, options.query);
116
+ const controller = new AbortController();
117
+ const timer = setTimeout(() => {
118
+ controller.abort();
119
+ }, this.timeoutMs);
120
+ let response;
121
+ try {
122
+ response = await this.fetchImpl(url, {
123
+ method: "GET",
124
+ signal: controller.signal,
125
+ headers: this.authHeaders(),
126
+ });
127
+ }
128
+ catch (error) {
129
+ if (isAbortError(error)) {
130
+ throw new OsvaTransportError("OSVA API request timed out.", {
131
+ cause: error,
132
+ });
133
+ }
134
+ throw new OsvaTransportError("OSVA API transport failed.", {
135
+ cause: error,
136
+ });
137
+ }
138
+ finally {
139
+ clearTimeout(timer);
140
+ }
141
+ if (!response.ok) {
142
+ let body;
143
+ try {
144
+ body = await response.json();
145
+ }
146
+ catch {
147
+ throw new OsvaApiError(response.status, { status: "error" }, resolveOsvaRequestId(response.headers));
148
+ }
149
+ throw new OsvaApiError(response.status, normalizeErrorBody(body), resolveOsvaRequestId(response.headers, body));
150
+ }
151
+ return {
152
+ status: response.status,
153
+ headers: response.headers,
154
+ body: response.body,
155
+ };
156
+ }
157
+ }
158
+ function normalizeBaseUrl(baseUrl) {
159
+ const trimmed = baseUrl.trim().replace(/\/+$/, "");
160
+ if (trimmed.length === 0) {
161
+ throw new Error("baseUrl must not be empty.");
162
+ }
163
+ return trimmed;
164
+ }
165
+ function buildUrl(baseUrl, path, query) {
166
+ const url = new URL(path.startsWith("/") ? path : `/${path}`, `${baseUrl}/`);
167
+ if (query !== undefined) {
168
+ for (const [key, value] of Object.entries(query)) {
169
+ if (value !== undefined) {
170
+ url.searchParams.set(key, value);
171
+ }
172
+ }
173
+ }
174
+ return url.toString();
175
+ }
176
+ function normalizeErrorBody(body) {
177
+ if (typeof body === "object" &&
178
+ body !== null &&
179
+ "status" in body &&
180
+ typeof body.status === "string") {
181
+ return body;
182
+ }
183
+ return { status: "error" };
184
+ }
185
+ function isAbortError(error) {
186
+ return (error instanceof Error &&
187
+ (error.name === "AbortError" || error.name === "TimeoutError"));
188
+ }
189
+ function resolveOsvaRequestId(headers, body) {
190
+ const headerValue = headers.get(OSVA_REQUEST_ID_HEADER)?.trim();
191
+ if (headerValue !== undefined && headerValue.length > 0) {
192
+ return headerValue;
193
+ }
194
+ if (typeof body === "object" &&
195
+ body !== null &&
196
+ "requestId" in body &&
197
+ typeof body.requestId === "string") {
198
+ const requestId = body.requestId.trim();
199
+ return requestId.length > 0 ? requestId : undefined;
200
+ }
201
+ return undefined;
202
+ }
203
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { OsvaClient, type OsvaClientOptions } from "./client.js";
2
+ export { OsvaApiError, OsvaTransportError, type OsvaApiErrorBody, } from "./errors.js";
3
+ export { OsvaHttpClient, type OsvaHttpClientOptions, type OsvaHttpResponse, } from "./http-client.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { OsvaClient } from "./client.js";
2
+ export { OsvaApiError, OsvaTransportError, } from "./errors.js";
3
+ export { OsvaHttpClient, } from "./http-client.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,GAGf,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AgentId, AgentVersionId } from "@osva-ai/contracts";
2
+ import { agentListResourceSchema, agentResourceSchema, agentVersionListResourceSchema, agentVersionResourceSchema, createAgentRequestSchema, createAgentVersionRequestSchema } from "@osva-ai/contracts/schemas";
3
+ import type { z } from "zod";
4
+ import type { OsvaHttpClient } from "../http-client.js";
5
+ type AgentListResource = z.infer<typeof agentListResourceSchema>;
6
+ type AgentResource = z.infer<typeof agentResourceSchema>;
7
+ type AgentVersionListResource = z.infer<typeof agentVersionListResourceSchema>;
8
+ type AgentVersionResource = z.infer<typeof agentVersionResourceSchema>;
9
+ type CreateAgentRequest = z.infer<typeof createAgentRequestSchema>;
10
+ type CreateAgentVersionRequest = z.infer<typeof createAgentVersionRequestSchema>;
11
+ export declare class AgentsResource {
12
+ private readonly client;
13
+ constructor(client: OsvaHttpClient);
14
+ list(): Promise<AgentListResource>;
15
+ get(agentId: AgentId): Promise<AgentResource>;
16
+ create(input: CreateAgentRequest): Promise<AgentResource>;
17
+ listVersions(agentId: AgentId): Promise<AgentVersionListResource>;
18
+ getVersion(agentId: AgentId, agentVersionId: AgentVersionId): Promise<AgentVersionResource>;
19
+ createVersion(agentId: AgentId, input: CreateAgentVersionRequest): Promise<AgentVersionResource>;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/resources/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACjE,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACzD,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC/E,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACvE,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACnE,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CACtC,OAAO,+BAA+B,CACvC,CAAC;AAEF,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIlC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAO7C,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAQzD,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAOjE,UAAU,CACR,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,oBAAoB,CAAC;IAOhC,aAAa,CACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,oBAAoB,CAAC;CAOjC"}
@@ -0,0 +1,43 @@
1
+ import { agentListResourceSchema, agentResourceSchema, agentVersionListResourceSchema, agentVersionResourceSchema, createAgentRequestSchema, createAgentVersionRequestSchema, } from "@osva-ai/contracts/schemas";
2
+ export class AgentsResource {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ list() {
8
+ return this.client.request({ method: "GET", path: "/v1/agents" });
9
+ }
10
+ get(agentId) {
11
+ return this.client.request({
12
+ method: "GET",
13
+ path: `/v1/agents/${encodeURIComponent(agentId)}`,
14
+ });
15
+ }
16
+ create(input) {
17
+ return this.client.request({
18
+ method: "POST",
19
+ path: "/v1/agents",
20
+ body: input,
21
+ });
22
+ }
23
+ listVersions(agentId) {
24
+ return this.client.request({
25
+ method: "GET",
26
+ path: `/v1/agents/${encodeURIComponent(agentId)}/versions`,
27
+ });
28
+ }
29
+ getVersion(agentId, agentVersionId) {
30
+ return this.client.request({
31
+ method: "GET",
32
+ path: `/v1/agents/${encodeURIComponent(agentId)}/versions/${encodeURIComponent(agentVersionId)}`,
33
+ });
34
+ }
35
+ createVersion(agentId, input) {
36
+ return this.client.request({
37
+ method: "POST",
38
+ path: `/v1/agents/${encodeURIComponent(agentId)}/versions`,
39
+ body: input,
40
+ });
41
+ }
42
+ }
43
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/resources/agents.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,4BAA4B,CAAC;AAcpC,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,GAAG,CAAC,OAAgB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAyB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,WAAW;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CACR,OAAgB,EAChB,cAA8B;QAE9B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,aAAa,kBAAkB,CAAC,cAAc,CAAC,EAAE;SACjG,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,OAAgB,EAChB,KAAgC;QAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,WAAW;YAC1D,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { apiKeyListResourceSchema, createApiKeyRequestSchema, createApiKeyResponseSchema, revokeApiKeyResponseSchema } from "@osva-ai/contracts/schemas";
2
+ import type { ApiKeyId } from "@osva-ai/contracts";
3
+ import type { z } from "zod";
4
+ import type { OsvaHttpClient } from "../http-client.js";
5
+ type CreateApiKeyRequest = z.infer<typeof createApiKeyRequestSchema>;
6
+ type CreateApiKeyResponse = z.infer<typeof createApiKeyResponseSchema>;
7
+ type ApiKeyListResource = z.infer<typeof apiKeyListResourceSchema>;
8
+ type RevokeApiKeyResponse = z.infer<typeof revokeApiKeyResponseSchema>;
9
+ export declare class ApiKeysResource {
10
+ private readonly client;
11
+ constructor(client: OsvaHttpClient);
12
+ list(): Promise<ApiKeyListResource>;
13
+ create(input: CreateApiKeyRequest): Promise<CreateApiKeyResponse>;
14
+ revoke(apiKeyId: ApiKeyId): Promise<RevokeApiKeyResponse>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=api-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/resources/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACrE,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACvE,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACnE,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEvE,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAOnC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQjE,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAM1D"}
@@ -0,0 +1,27 @@
1
+ import { apiKeyListResourceSchema, createApiKeyRequestSchema, createApiKeyResponseSchema, revokeApiKeyResponseSchema, } from "@osva-ai/contracts/schemas";
2
+ export class ApiKeysResource {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ list() {
8
+ return this.client.request({
9
+ method: "GET",
10
+ path: "/v1/api-keys",
11
+ });
12
+ }
13
+ create(input) {
14
+ return this.client.request({
15
+ method: "POST",
16
+ path: "/v1/api-keys",
17
+ body: input,
18
+ });
19
+ }
20
+ revoke(apiKeyId) {
21
+ return this.client.request({
22
+ method: "POST",
23
+ path: `/v1/api-keys/${encodeURIComponent(apiKeyId)}/revoke`,
24
+ });
25
+ }
26
+ }
27
+ //# sourceMappingURL=api-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/resources/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAWpC,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAA0B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,QAAQ,CAAC,SAAS;SAC5D,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { ApprovalRequestId } from "@osva-ai/contracts";
2
+ import { approvalRequestResourceSchema, decideApprovalRequestSchema } from "@osva-ai/contracts/schemas";
3
+ import type { z } from "zod";
4
+ import type { OsvaHttpClient } from "../http-client.js";
5
+ type ApprovalRequestResource = z.infer<typeof approvalRequestResourceSchema>;
6
+ type DecideApprovalRequest = z.infer<typeof decideApprovalRequestSchema>;
7
+ export declare class ApprovalsResource {
8
+ private readonly client;
9
+ constructor(client: OsvaHttpClient);
10
+ get(approvalRequestId: ApprovalRequestId): Promise<ApprovalRequestResource>;
11
+ decide(approvalRequestId: ApprovalRequestId, input: DecideApprovalRequest): Promise<ApprovalRequestResource>;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=approvals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAC7E,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEzE,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO3E,MAAM,CACJ,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,uBAAuB,CAAC;CAOpC"}
@@ -0,0 +1,21 @@
1
+ import { approvalRequestResourceSchema, decideApprovalRequestSchema, } from "@osva-ai/contracts/schemas";
2
+ export class ApprovalsResource {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ get(approvalRequestId) {
8
+ return this.client.request({
9
+ method: "GET",
10
+ path: `/v1/approval-requests/${encodeURIComponent(approvalRequestId)}`,
11
+ });
12
+ }
13
+ decide(approvalRequestId, input) {
14
+ return this.client.request({
15
+ method: "POST",
16
+ path: `/v1/approval-requests/${encodeURIComponent(approvalRequestId)}/decision`,
17
+ body: input,
18
+ });
19
+ }
20
+ }
21
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAQpC,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,GAAG,CAAC,iBAAoC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,yBAAyB,kBAAkB,CAAC,iBAAiB,CAAC,EAAE;SACvE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,iBAAoC,EACpC,KAA4B;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,yBAAyB,kBAAkB,CAAC,iBAAiB,CAAC,WAAW;YAC/E,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,25 @@
1
+ import type { ArtifactId } from "@osva-ai/contracts";
2
+ import { artifactListResourceSchema, artifactResourceSchema, listArtifactsQuerySchema } from "@osva-ai/contracts/schemas";
3
+ import type { z } from "zod";
4
+ import type { DownloadResult, OsvaHttpClient } from "../http-client.js";
5
+ type ArtifactResource = z.infer<typeof artifactResourceSchema>;
6
+ type ArtifactListResource = z.infer<typeof artifactListResourceSchema>;
7
+ type ListArtifactsQuery = z.infer<typeof listArtifactsQuerySchema>;
8
+ export interface CreateArtifactInput {
9
+ readonly name: string;
10
+ readonly content: Blob;
11
+ readonly mediaType?: string;
12
+ readonly metadata?: Record<string, unknown>;
13
+ readonly expectedDigest?: string;
14
+ readonly idempotencyKey?: string;
15
+ }
16
+ export declare class ArtifactsResource {
17
+ private readonly client;
18
+ constructor(client: OsvaHttpClient);
19
+ list(query?: ListArtifactsQuery): Promise<ArtifactListResource>;
20
+ get(artifactId: ArtifactId): Promise<ArtifactResource>;
21
+ create(input: CreateArtifactInput): Promise<ArtifactResource>;
22
+ download(artifactId: ArtifactId): Promise<DownloadResult>;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/resources/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC/D,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACvE,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,IAAI,CAAC,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAanE,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOtD,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6B7D,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;CAK1D"}
@@ -0,0 +1,57 @@
1
+ import { artifactListResourceSchema, artifactResourceSchema, listArtifactsQuerySchema, } from "@osva-ai/contracts/schemas";
2
+ export class ArtifactsResource {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ list(query = {}) {
8
+ return this.client.request({
9
+ method: "GET",
10
+ path: "/v1/artifacts",
11
+ query: {
12
+ runId: query.runId,
13
+ runAttemptId: query.runAttemptId,
14
+ limit: query.limit,
15
+ cursor: query.cursor,
16
+ },
17
+ });
18
+ }
19
+ get(artifactId) {
20
+ return this.client.request({
21
+ method: "GET",
22
+ path: `/v1/artifacts/${encodeURIComponent(artifactId)}`,
23
+ });
24
+ }
25
+ create(input) {
26
+ const form = new FormData();
27
+ form.set("name", input.name);
28
+ if (input.mediaType !== undefined) {
29
+ form.set("mediaType", input.mediaType);
30
+ }
31
+ if (input.metadata !== undefined) {
32
+ form.set("metadata", JSON.stringify(input.metadata));
33
+ }
34
+ if (input.expectedDigest !== undefined) {
35
+ form.set("expectedDigest", input.expectedDigest);
36
+ }
37
+ if (input.idempotencyKey !== undefined) {
38
+ form.set("idempotencyKey", input.idempotencyKey);
39
+ }
40
+ form.set("file", input.content, input.name);
41
+ const headers = {};
42
+ if (input.idempotencyKey !== undefined) {
43
+ headers["Idempotency-Key"] = input.idempotencyKey;
44
+ }
45
+ return this.client.uploadMultipart({
46
+ path: "/v1/artifacts",
47
+ form,
48
+ headers,
49
+ });
50
+ }
51
+ download(artifactId) {
52
+ return this.client.download({
53
+ path: `/v1/artifacts/${encodeURIComponent(artifactId)}/content`,
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/resources/artifacts.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAkBpC,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,IAAI,CAAC,QAA4B,EAAE;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,UAAsB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE;SACxD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAA0B;QAC/B,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACjC,IAAI,EAAE,eAAe;YACrB,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,UAAsB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1B,IAAI,EAAE,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,UAAU;SAChE,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { AssignmentId } from "@osva-ai/contracts";
2
+ import { assignmentListResourceSchema, assignmentResourceSchema, createAssignmentRequestSchema, updateAssignmentRequestSchema } from "@osva-ai/contracts/schemas";
3
+ import type { z } from "zod";
4
+ import type { OsvaHttpClient } from "../http-client.js";
5
+ type AssignmentResource = z.infer<typeof assignmentResourceSchema>;
6
+ type AssignmentListResource = z.infer<typeof assignmentListResourceSchema>;
7
+ type CreateAssignmentRequest = z.infer<typeof createAssignmentRequestSchema>;
8
+ type UpdateAssignmentRequest = z.infer<typeof updateAssignmentRequestSchema>;
9
+ export declare class AssignmentsResource {
10
+ private readonly client;
11
+ constructor(client: OsvaHttpClient);
12
+ list(): Promise<AssignmentListResource>;
13
+ get(assignmentId: AssignmentId): Promise<AssignmentResource>;
14
+ create(input: CreateAssignmentRequest): Promise<AssignmentResource>;
15
+ update(assignmentId: AssignmentId, input: UpdateAssignmentRequest): Promise<AssignmentResource>;
16
+ launch(assignmentId: AssignmentId): Promise<AssignmentResource>;
17
+ cancel(assignmentId: AssignmentId): Promise<AssignmentResource>;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=assignments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../src/resources/assignments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACnE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAC3E,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAC7E,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAE7E,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,IAAI,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAOvC,GAAG,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAO5D,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQnE,MAAM,CACJ,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IAQ9B,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAO/D,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAMhE"}
@@ -0,0 +1,46 @@
1
+ import { assignmentListResourceSchema, assignmentResourceSchema, createAssignmentRequestSchema, updateAssignmentRequestSchema, } from "@osva-ai/contracts/schemas";
2
+ export class AssignmentsResource {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ list() {
8
+ return this.client.request({
9
+ method: "GET",
10
+ path: "/v1/assignments",
11
+ });
12
+ }
13
+ get(assignmentId) {
14
+ return this.client.request({
15
+ method: "GET",
16
+ path: `/v1/assignments/${encodeURIComponent(assignmentId)}`,
17
+ });
18
+ }
19
+ create(input) {
20
+ return this.client.request({
21
+ method: "POST",
22
+ path: "/v1/assignments",
23
+ body: input,
24
+ });
25
+ }
26
+ update(assignmentId, input) {
27
+ return this.client.request({
28
+ method: "PATCH",
29
+ path: `/v1/assignments/${encodeURIComponent(assignmentId)}`,
30
+ body: input,
31
+ });
32
+ }
33
+ launch(assignmentId) {
34
+ return this.client.request({
35
+ method: "POST",
36
+ path: `/v1/assignments/${encodeURIComponent(assignmentId)}/launch`,
37
+ });
38
+ }
39
+ cancel(assignmentId) {
40
+ return this.client.request({
41
+ method: "POST",
42
+ path: `/v1/assignments/${encodeURIComponent(assignmentId)}/cancel`,
43
+ });
44
+ }
45
+ }
46
+ //# sourceMappingURL=assignments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignments.js","sourceRoot":"","sources":["../../src/resources/assignments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAUpC,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,YAA0B;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,YAAY,CAAC,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAA8B;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,YAA0B,EAC1B,KAA8B;QAE9B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,YAAY,CAAC,EAAE;YAC3D,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAA0B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,YAAY,CAAC,SAAS;SACnE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAA0B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,YAAY,CAAC,SAAS;SACnE,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ import type { OsvaHttpClient } from "../http-client.js";
3
+ export declare const authContextResourceSchema: z.ZodObject<{
4
+ subjectId: z.ZodString;
5
+ workspaceId: z.ZodString;
6
+ role: z.ZodString;
7
+ }, z.core.$strict>;
8
+ export type AuthContextResource = z.infer<typeof authContextResourceSchema>;
9
+ export declare class AuthResource {
10
+ private readonly client;
11
+ constructor(client: OsvaHttpClient);
12
+ getContext(): Promise<AuthContextResource>;
13
+ }
14
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,yBAAyB;;;;kBAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,UAAU,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAM3C"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ export const authContextResourceSchema = z.strictObject({
3
+ subjectId: z.string().min(1),
4
+ workspaceId: z.string().min(1),
5
+ role: z.string().min(1),
6
+ });
7
+ export class AuthResource {
8
+ client;
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ getContext() {
13
+ return this.client.request({
14
+ method: "GET",
15
+ path: "/v1/auth/context",
16
+ });
17
+ }
18
+ }
19
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAIH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;IACL,CAAC;CACF"}