scorecard-ai 1.0.0-alpha.8 → 1.0.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 (143) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +25 -37
  3. package/client.d.mts +5 -4
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +5 -4
  6. package/client.d.ts.map +1 -1
  7. package/client.js +19 -4
  8. package/client.js.map +1 -1
  9. package/client.mjs +19 -4
  10. package/client.mjs.map +1 -1
  11. package/core/pagination.d.mts +1 -1
  12. package/core/pagination.d.mts.map +1 -1
  13. package/core/pagination.d.ts +1 -1
  14. package/core/pagination.d.ts.map +1 -1
  15. package/index.d.mts +1 -0
  16. package/index.d.mts.map +1 -1
  17. package/index.d.ts +1 -0
  18. package/index.d.ts.map +1 -1
  19. package/index.js +3 -1
  20. package/index.js.map +1 -1
  21. package/index.mjs +1 -0
  22. package/index.mjs.map +1 -1
  23. package/internal/detect-platform.js +3 -3
  24. package/internal/detect-platform.js.map +1 -1
  25. package/internal/detect-platform.mjs +3 -3
  26. package/internal/detect-platform.mjs.map +1 -1
  27. package/internal/shim-types.d.mts +11 -22
  28. package/internal/shim-types.d.mts.map +1 -0
  29. package/internal/shim-types.d.ts +11 -22
  30. package/internal/shim-types.d.ts.map +1 -0
  31. package/internal/shim-types.js +4 -0
  32. package/internal/shim-types.js.map +1 -0
  33. package/internal/shim-types.mjs +3 -0
  34. package/internal/shim-types.mjs.map +1 -0
  35. package/internal/shims.d.mts +2 -2
  36. package/internal/shims.d.mts.map +1 -1
  37. package/internal/shims.d.ts +2 -2
  38. package/internal/shims.d.ts.map +1 -1
  39. package/internal/tslib.js +6 -6
  40. package/internal/uploads.js.map +1 -1
  41. package/internal/uploads.mjs.map +1 -1
  42. package/lib/runAndEvaluate.d.mts +62 -10
  43. package/lib/runAndEvaluate.d.mts.map +1 -1
  44. package/lib/runAndEvaluate.d.ts +62 -10
  45. package/lib/runAndEvaluate.d.ts.map +1 -1
  46. package/lib/runAndEvaluate.js +72 -19
  47. package/lib/runAndEvaluate.js.map +1 -1
  48. package/lib/runAndEvaluate.mjs +72 -19
  49. package/lib/runAndEvaluate.mjs.map +1 -1
  50. package/package.json +1 -4
  51. package/resources/index.d.mts +2 -2
  52. package/resources/index.d.mts.map +1 -1
  53. package/resources/index.d.ts +2 -2
  54. package/resources/index.d.ts.map +1 -1
  55. package/resources/index.js +4 -4
  56. package/resources/index.js.map +1 -1
  57. package/resources/index.mjs +2 -2
  58. package/resources/index.mjs.map +1 -1
  59. package/resources/metrics.d.mts +421 -0
  60. package/resources/metrics.d.mts.map +1 -0
  61. package/resources/metrics.d.ts +421 -0
  62. package/resources/metrics.d.ts.map +1 -0
  63. package/resources/metrics.js +33 -0
  64. package/resources/metrics.js.map +1 -0
  65. package/resources/metrics.mjs +29 -0
  66. package/resources/metrics.mjs.map +1 -0
  67. package/resources/runs.d.mts +8 -8
  68. package/resources/runs.d.mts.map +1 -1
  69. package/resources/runs.d.ts +8 -8
  70. package/resources/runs.d.ts.map +1 -1
  71. package/resources/runs.js +1 -1
  72. package/resources/runs.mjs +1 -1
  73. package/resources/systems/index.d.mts +3 -0
  74. package/resources/systems/index.d.mts.map +1 -0
  75. package/resources/systems/index.d.ts +3 -0
  76. package/resources/systems/index.d.ts.map +1 -0
  77. package/resources/systems/index.js +9 -0
  78. package/resources/systems/index.js.map +1 -0
  79. package/resources/systems/index.mjs +4 -0
  80. package/resources/systems/index.mjs.map +1 -0
  81. package/resources/systems/systems.d.mts +229 -0
  82. package/resources/systems/systems.d.mts.map +1 -0
  83. package/resources/systems/systems.d.ts +229 -0
  84. package/resources/systems/systems.d.ts.map +1 -0
  85. package/resources/systems/systems.js +151 -0
  86. package/resources/systems/systems.js.map +1 -0
  87. package/resources/systems/systems.mjs +146 -0
  88. package/resources/systems/systems.mjs.map +1 -0
  89. package/resources/systems/versions.d.mts +132 -0
  90. package/resources/systems/versions.d.mts.map +1 -0
  91. package/resources/systems/versions.d.ts +132 -0
  92. package/resources/systems/versions.d.ts.map +1 -0
  93. package/resources/systems/versions.js +82 -0
  94. package/resources/systems/versions.js.map +1 -0
  95. package/resources/systems/versions.mjs +78 -0
  96. package/resources/systems/versions.mjs.map +1 -0
  97. package/resources/systems.d.mts +1 -224
  98. package/resources/systems.d.mts.map +1 -1
  99. package/resources/systems.d.ts +1 -224
  100. package/resources/systems.d.ts.map +1 -1
  101. package/resources/systems.js +2 -139
  102. package/resources/systems.js.map +1 -1
  103. package/resources/systems.mjs +1 -137
  104. package/resources/systems.mjs.map +1 -1
  105. package/resources/testsets.d.mts +1 -1
  106. package/resources/testsets.d.ts +1 -1
  107. package/resources/testsets.js +1 -1
  108. package/resources/testsets.mjs +1 -1
  109. package/src/client.ts +28 -28
  110. package/src/core/pagination.ts +1 -1
  111. package/src/index.ts +2 -0
  112. package/src/internal/detect-platform.ts +3 -3
  113. package/src/internal/shim-types.ts +26 -0
  114. package/src/internal/shims.ts +2 -2
  115. package/src/internal/uploads.ts +1 -1
  116. package/src/lib/runAndEvaluate.ts +159 -31
  117. package/src/resources/index.ts +2 -9
  118. package/src/resources/metrics.ts +525 -0
  119. package/src/resources/runs.ts +8 -8
  120. package/src/resources/systems/index.ts +18 -0
  121. package/src/resources/systems/systems.ts +299 -0
  122. package/src/resources/systems/versions.ts +166 -0
  123. package/src/resources/systems.ts +1 -277
  124. package/src/resources/testsets.ts +1 -1
  125. package/src/version.ts +1 -1
  126. package/version.d.mts +1 -1
  127. package/version.d.mts.map +1 -1
  128. package/version.d.ts +1 -1
  129. package/version.d.ts.map +1 -1
  130. package/version.js +1 -1
  131. package/version.js.map +1 -1
  132. package/version.mjs +1 -1
  133. package/version.mjs.map +1 -1
  134. package/resources/system-configs.d.mts +0 -155
  135. package/resources/system-configs.d.mts.map +0 -1
  136. package/resources/system-configs.d.ts +0 -155
  137. package/resources/system-configs.d.ts.map +0 -1
  138. package/resources/system-configs.js +0 -83
  139. package/resources/system-configs.js.map +0 -1
  140. package/resources/system-configs.mjs +0 -79
  141. package/resources/system-configs.mjs.map +0 -1
  142. package/src/internal/shim-types.d.ts +0 -28
  143. package/src/resources/system-configs.ts +0 -203
@@ -0,0 +1,229 @@
1
+ import { APIResource } from "../../core/resource.mjs";
2
+ import * as VersionsAPI from "./versions.mjs";
3
+ import { SystemVersion, SystemVersionsPaginatedResponse, VersionCreateParams, VersionListParams, Versions } from "./versions.mjs";
4
+ import { APIPromise } from "../../core/api-promise.mjs";
5
+ import { PagePromise, PaginatedResponse, type PaginatedResponseParams } from "../../core/pagination.mjs";
6
+ import { RequestOptions } from "../../internal/request-options.mjs";
7
+ export declare class Systems extends APIResource {
8
+ versions: VersionsAPI.Versions;
9
+ /**
10
+ * Create a new system definition that specifies the interface contracts for a
11
+ * component you want to evaluate.
12
+ *
13
+ * A system acts as a template that defines three key contracts through JSON
14
+ * Schemas:
15
+ *
16
+ * 1. Input Schema: What data your system accepts (e.g., user queries, context
17
+ * documents)
18
+ * 2. Output Schema: What data your system produces (e.g., responses, confidence
19
+ * scores)
20
+ * 3. Config Schema: What parameters can be adjusted (e.g., model selection,
21
+ * temperature)
22
+ *
23
+ * This separation lets you evaluate any system as a black box, focusing on its
24
+ * interface rather than implementation details.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const system = await client.systems.create('314', {
29
+ * configSchema: {
30
+ * type: 'object',
31
+ * properties: {
32
+ * temperature: { type: 'number' },
33
+ * maxTokens: { type: 'integer' },
34
+ * model: { type: 'string', enum: ['gpt-4', 'gpt-4-turbo'] },
35
+ * },
36
+ * required: ['model'],
37
+ * },
38
+ * description: 'Production chatbot powered by GPT-4',
39
+ * inputSchema: {
40
+ * type: 'object',
41
+ * properties: {
42
+ * messages: {
43
+ * type: 'array',
44
+ * items: {
45
+ * type: 'object',
46
+ * properties: {
47
+ * role: { type: 'string', enum: ['system', 'user', 'assistant'] },
48
+ * content: { type: 'string' },
49
+ * },
50
+ * required: ['role', 'content'],
51
+ * },
52
+ * },
53
+ * },
54
+ * required: ['messages'],
55
+ * },
56
+ * name: 'GPT-4 Chatbot',
57
+ * outputSchema: {
58
+ * type: 'object',
59
+ * properties: { response: { type: 'string' } },
60
+ * required: ['response'],
61
+ * },
62
+ * });
63
+ * ```
64
+ */
65
+ create(projectID: string, body: SystemCreateParams, options?: RequestOptions): APIPromise<System>;
66
+ /**
67
+ * Update an existing system definition. Only the fields provided in the request
68
+ * body will be updated. If a field is provided, the new content will replace the
69
+ * existing content. If a field is not provided, the existing content will remain
70
+ * unchanged.
71
+ *
72
+ * When updating schemas:
73
+ *
74
+ * - The system will accept your changes regardless of compatibility with existing
75
+ * configurations
76
+ * - Schema updates won't invalidate existing evaluations or configurations
77
+ * - For significant redesigns, creating a new system definition provides a cleaner
78
+ * separation
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const system = await client.systems.update(
83
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
84
+ * {
85
+ * description:
86
+ * 'Updated production chatbot powered by GPT-4 Turbo',
87
+ * name: 'GPT-4 Turbo Chatbot',
88
+ * },
89
+ * );
90
+ * ```
91
+ */
92
+ update(systemID: string, body?: SystemUpdateParams | null | undefined, options?: RequestOptions): APIPromise<System>;
93
+ /**
94
+ * Retrieve a paginated list of all systems. Systems are ordered by creation date.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * // Automatically fetches more pages as needed.
99
+ * for await (const system of client.systems.list('314')) {
100
+ * // ...
101
+ * }
102
+ * ```
103
+ */
104
+ list(projectID: string, query?: SystemListParams | null | undefined, options?: RequestOptions): PagePromise<SystemsPaginatedResponse, System>;
105
+ /**
106
+ * Delete a system definition by ID. This will not delete associated system
107
+ * versions.
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const system = await client.systems.delete(
112
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
113
+ * );
114
+ * ```
115
+ */
116
+ delete(systemID: string, options?: RequestOptions): APIPromise<SystemDeleteResponse>;
117
+ /**
118
+ * Retrieve a specific system by ID.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const system = await client.systems.get(
123
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
124
+ * );
125
+ * ```
126
+ */
127
+ get(systemID: string, options?: RequestOptions): APIPromise<System>;
128
+ }
129
+ export type SystemsPaginatedResponse = PaginatedResponse<System>;
130
+ /**
131
+ * A System Under Test (SUT) defines the interface to a component or service you
132
+ * want to evaluate.
133
+ *
134
+ * It specifies three contracts through schemas:
135
+ *
136
+ * - inputSchema: The structure of data the system accepts.
137
+ * - outputSchema: The structure of data the system produces.
138
+ * - configSchema: The parameters that modify system behavior.
139
+ *
140
+ * This abstraction lets you evaluate any system as a black box, focusing on its
141
+ * interface rather than implementation details. It's particularly useful for
142
+ * systems with variable outputs or complex internal state.
143
+ *
144
+ * Systems are templates - to run evaluations, pair them with a SystemVersion that
145
+ * provides specific parameter values.
146
+ */
147
+ export interface System {
148
+ /**
149
+ * The ID of the system.
150
+ */
151
+ id: string;
152
+ /**
153
+ * The schema of the system's configuration.
154
+ */
155
+ configSchema: Record<string, unknown>;
156
+ /**
157
+ * The description of the system.
158
+ */
159
+ description: string;
160
+ /**
161
+ * The schema of the system's inputs.
162
+ */
163
+ inputSchema: Record<string, unknown>;
164
+ /**
165
+ * The name of the system.
166
+ */
167
+ name: string;
168
+ /**
169
+ * The schema of the system's outputs.
170
+ */
171
+ outputSchema: Record<string, unknown>;
172
+ }
173
+ export interface SystemDeleteResponse {
174
+ /**
175
+ * Whether the deletion was successful.
176
+ */
177
+ success: boolean;
178
+ }
179
+ export interface SystemCreateParams {
180
+ /**
181
+ * The schema of the system's configuration.
182
+ */
183
+ configSchema: Record<string, unknown>;
184
+ /**
185
+ * The description of the system.
186
+ */
187
+ description: string;
188
+ /**
189
+ * The schema of the system's inputs.
190
+ */
191
+ inputSchema: Record<string, unknown>;
192
+ /**
193
+ * The name of the system.
194
+ */
195
+ name: string;
196
+ /**
197
+ * The schema of the system's outputs.
198
+ */
199
+ outputSchema: Record<string, unknown>;
200
+ }
201
+ export interface SystemUpdateParams {
202
+ /**
203
+ * The schema of the system's configuration.
204
+ */
205
+ configSchema?: Record<string, unknown>;
206
+ /**
207
+ * The description of the system.
208
+ */
209
+ description?: string;
210
+ /**
211
+ * The schema of the system's inputs.
212
+ */
213
+ inputSchema?: Record<string, unknown>;
214
+ /**
215
+ * The name of the system.
216
+ */
217
+ name?: string;
218
+ /**
219
+ * The schema of the system's outputs.
220
+ */
221
+ outputSchema?: Record<string, unknown>;
222
+ }
223
+ export interface SystemListParams extends PaginatedResponseParams {
224
+ }
225
+ export declare namespace Systems {
226
+ export { type System as System, type SystemDeleteResponse as SystemDeleteResponse, type SystemsPaginatedResponse as SystemsPaginatedResponse, type SystemCreateParams as SystemCreateParams, type SystemUpdateParams as SystemUpdateParams, type SystemListParams as SystemListParams, };
227
+ export { Versions as Versions, type SystemVersion as SystemVersion, type SystemVersionsPaginatedResponse as SystemVersionsPaginatedResponse, type VersionCreateParams as VersionCreateParams, type VersionListParams as VersionListParams, };
228
+ }
229
+ //# sourceMappingURL=systems.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systems.d.mts","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ import { APIResource } from "../../core/resource.js";
2
+ import * as VersionsAPI from "./versions.js";
3
+ import { SystemVersion, SystemVersionsPaginatedResponse, VersionCreateParams, VersionListParams, Versions } from "./versions.js";
4
+ import { APIPromise } from "../../core/api-promise.js";
5
+ import { PagePromise, PaginatedResponse, type PaginatedResponseParams } from "../../core/pagination.js";
6
+ import { RequestOptions } from "../../internal/request-options.js";
7
+ export declare class Systems extends APIResource {
8
+ versions: VersionsAPI.Versions;
9
+ /**
10
+ * Create a new system definition that specifies the interface contracts for a
11
+ * component you want to evaluate.
12
+ *
13
+ * A system acts as a template that defines three key contracts through JSON
14
+ * Schemas:
15
+ *
16
+ * 1. Input Schema: What data your system accepts (e.g., user queries, context
17
+ * documents)
18
+ * 2. Output Schema: What data your system produces (e.g., responses, confidence
19
+ * scores)
20
+ * 3. Config Schema: What parameters can be adjusted (e.g., model selection,
21
+ * temperature)
22
+ *
23
+ * This separation lets you evaluate any system as a black box, focusing on its
24
+ * interface rather than implementation details.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const system = await client.systems.create('314', {
29
+ * configSchema: {
30
+ * type: 'object',
31
+ * properties: {
32
+ * temperature: { type: 'number' },
33
+ * maxTokens: { type: 'integer' },
34
+ * model: { type: 'string', enum: ['gpt-4', 'gpt-4-turbo'] },
35
+ * },
36
+ * required: ['model'],
37
+ * },
38
+ * description: 'Production chatbot powered by GPT-4',
39
+ * inputSchema: {
40
+ * type: 'object',
41
+ * properties: {
42
+ * messages: {
43
+ * type: 'array',
44
+ * items: {
45
+ * type: 'object',
46
+ * properties: {
47
+ * role: { type: 'string', enum: ['system', 'user', 'assistant'] },
48
+ * content: { type: 'string' },
49
+ * },
50
+ * required: ['role', 'content'],
51
+ * },
52
+ * },
53
+ * },
54
+ * required: ['messages'],
55
+ * },
56
+ * name: 'GPT-4 Chatbot',
57
+ * outputSchema: {
58
+ * type: 'object',
59
+ * properties: { response: { type: 'string' } },
60
+ * required: ['response'],
61
+ * },
62
+ * });
63
+ * ```
64
+ */
65
+ create(projectID: string, body: SystemCreateParams, options?: RequestOptions): APIPromise<System>;
66
+ /**
67
+ * Update an existing system definition. Only the fields provided in the request
68
+ * body will be updated. If a field is provided, the new content will replace the
69
+ * existing content. If a field is not provided, the existing content will remain
70
+ * unchanged.
71
+ *
72
+ * When updating schemas:
73
+ *
74
+ * - The system will accept your changes regardless of compatibility with existing
75
+ * configurations
76
+ * - Schema updates won't invalidate existing evaluations or configurations
77
+ * - For significant redesigns, creating a new system definition provides a cleaner
78
+ * separation
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const system = await client.systems.update(
83
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
84
+ * {
85
+ * description:
86
+ * 'Updated production chatbot powered by GPT-4 Turbo',
87
+ * name: 'GPT-4 Turbo Chatbot',
88
+ * },
89
+ * );
90
+ * ```
91
+ */
92
+ update(systemID: string, body?: SystemUpdateParams | null | undefined, options?: RequestOptions): APIPromise<System>;
93
+ /**
94
+ * Retrieve a paginated list of all systems. Systems are ordered by creation date.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * // Automatically fetches more pages as needed.
99
+ * for await (const system of client.systems.list('314')) {
100
+ * // ...
101
+ * }
102
+ * ```
103
+ */
104
+ list(projectID: string, query?: SystemListParams | null | undefined, options?: RequestOptions): PagePromise<SystemsPaginatedResponse, System>;
105
+ /**
106
+ * Delete a system definition by ID. This will not delete associated system
107
+ * versions.
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * const system = await client.systems.delete(
112
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
113
+ * );
114
+ * ```
115
+ */
116
+ delete(systemID: string, options?: RequestOptions): APIPromise<SystemDeleteResponse>;
117
+ /**
118
+ * Retrieve a specific system by ID.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const system = await client.systems.get(
123
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
124
+ * );
125
+ * ```
126
+ */
127
+ get(systemID: string, options?: RequestOptions): APIPromise<System>;
128
+ }
129
+ export type SystemsPaginatedResponse = PaginatedResponse<System>;
130
+ /**
131
+ * A System Under Test (SUT) defines the interface to a component or service you
132
+ * want to evaluate.
133
+ *
134
+ * It specifies three contracts through schemas:
135
+ *
136
+ * - inputSchema: The structure of data the system accepts.
137
+ * - outputSchema: The structure of data the system produces.
138
+ * - configSchema: The parameters that modify system behavior.
139
+ *
140
+ * This abstraction lets you evaluate any system as a black box, focusing on its
141
+ * interface rather than implementation details. It's particularly useful for
142
+ * systems with variable outputs or complex internal state.
143
+ *
144
+ * Systems are templates - to run evaluations, pair them with a SystemVersion that
145
+ * provides specific parameter values.
146
+ */
147
+ export interface System {
148
+ /**
149
+ * The ID of the system.
150
+ */
151
+ id: string;
152
+ /**
153
+ * The schema of the system's configuration.
154
+ */
155
+ configSchema: Record<string, unknown>;
156
+ /**
157
+ * The description of the system.
158
+ */
159
+ description: string;
160
+ /**
161
+ * The schema of the system's inputs.
162
+ */
163
+ inputSchema: Record<string, unknown>;
164
+ /**
165
+ * The name of the system.
166
+ */
167
+ name: string;
168
+ /**
169
+ * The schema of the system's outputs.
170
+ */
171
+ outputSchema: Record<string, unknown>;
172
+ }
173
+ export interface SystemDeleteResponse {
174
+ /**
175
+ * Whether the deletion was successful.
176
+ */
177
+ success: boolean;
178
+ }
179
+ export interface SystemCreateParams {
180
+ /**
181
+ * The schema of the system's configuration.
182
+ */
183
+ configSchema: Record<string, unknown>;
184
+ /**
185
+ * The description of the system.
186
+ */
187
+ description: string;
188
+ /**
189
+ * The schema of the system's inputs.
190
+ */
191
+ inputSchema: Record<string, unknown>;
192
+ /**
193
+ * The name of the system.
194
+ */
195
+ name: string;
196
+ /**
197
+ * The schema of the system's outputs.
198
+ */
199
+ outputSchema: Record<string, unknown>;
200
+ }
201
+ export interface SystemUpdateParams {
202
+ /**
203
+ * The schema of the system's configuration.
204
+ */
205
+ configSchema?: Record<string, unknown>;
206
+ /**
207
+ * The description of the system.
208
+ */
209
+ description?: string;
210
+ /**
211
+ * The schema of the system's inputs.
212
+ */
213
+ inputSchema?: Record<string, unknown>;
214
+ /**
215
+ * The name of the system.
216
+ */
217
+ name?: string;
218
+ /**
219
+ * The schema of the system's outputs.
220
+ */
221
+ outputSchema?: Record<string, unknown>;
222
+ }
223
+ export interface SystemListParams extends PaginatedResponseParams {
224
+ }
225
+ export declare namespace Systems {
226
+ export { type System as System, type SystemDeleteResponse as SystemDeleteResponse, type SystemsPaginatedResponse as SystemsPaginatedResponse, type SystemCreateParams as SystemCreateParams, type SystemUpdateParams as SystemUpdateParams, type SystemListParams as SystemListParams, };
227
+ export { Versions as Versions, type SystemVersion as SystemVersion, type SystemVersionsPaginatedResponse as SystemVersionsPaginatedResponse, type VersionCreateParams as VersionCreateParams, type VersionListParams as VersionListParams, };
228
+ }
229
+ //# sourceMappingURL=systems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systems.d.ts","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Systems = void 0;
5
+ const tslib_1 = require("../../internal/tslib.js");
6
+ const resource_1 = require("../../core/resource.js");
7
+ const VersionsAPI = tslib_1.__importStar(require("./versions.js"));
8
+ const versions_1 = require("./versions.js");
9
+ const pagination_1 = require("../../core/pagination.js");
10
+ const path_1 = require("../../internal/utils/path.js");
11
+ class Systems extends resource_1.APIResource {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.versions = new VersionsAPI.Versions(this._client);
15
+ }
16
+ /**
17
+ * Create a new system definition that specifies the interface contracts for a
18
+ * component you want to evaluate.
19
+ *
20
+ * A system acts as a template that defines three key contracts through JSON
21
+ * Schemas:
22
+ *
23
+ * 1. Input Schema: What data your system accepts (e.g., user queries, context
24
+ * documents)
25
+ * 2. Output Schema: What data your system produces (e.g., responses, confidence
26
+ * scores)
27
+ * 3. Config Schema: What parameters can be adjusted (e.g., model selection,
28
+ * temperature)
29
+ *
30
+ * This separation lets you evaluate any system as a black box, focusing on its
31
+ * interface rather than implementation details.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const system = await client.systems.create('314', {
36
+ * configSchema: {
37
+ * type: 'object',
38
+ * properties: {
39
+ * temperature: { type: 'number' },
40
+ * maxTokens: { type: 'integer' },
41
+ * model: { type: 'string', enum: ['gpt-4', 'gpt-4-turbo'] },
42
+ * },
43
+ * required: ['model'],
44
+ * },
45
+ * description: 'Production chatbot powered by GPT-4',
46
+ * inputSchema: {
47
+ * type: 'object',
48
+ * properties: {
49
+ * messages: {
50
+ * type: 'array',
51
+ * items: {
52
+ * type: 'object',
53
+ * properties: {
54
+ * role: { type: 'string', enum: ['system', 'user', 'assistant'] },
55
+ * content: { type: 'string' },
56
+ * },
57
+ * required: ['role', 'content'],
58
+ * },
59
+ * },
60
+ * },
61
+ * required: ['messages'],
62
+ * },
63
+ * name: 'GPT-4 Chatbot',
64
+ * outputSchema: {
65
+ * type: 'object',
66
+ * properties: { response: { type: 'string' } },
67
+ * required: ['response'],
68
+ * },
69
+ * });
70
+ * ```
71
+ */
72
+ create(projectID, body, options) {
73
+ return this._client.post((0, path_1.path) `/projects/${projectID}/systems`, { body, ...options });
74
+ }
75
+ /**
76
+ * Update an existing system definition. Only the fields provided in the request
77
+ * body will be updated. If a field is provided, the new content will replace the
78
+ * existing content. If a field is not provided, the existing content will remain
79
+ * unchanged.
80
+ *
81
+ * When updating schemas:
82
+ *
83
+ * - The system will accept your changes regardless of compatibility with existing
84
+ * configurations
85
+ * - Schema updates won't invalidate existing evaluations or configurations
86
+ * - For significant redesigns, creating a new system definition provides a cleaner
87
+ * separation
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * const system = await client.systems.update(
92
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
93
+ * {
94
+ * description:
95
+ * 'Updated production chatbot powered by GPT-4 Turbo',
96
+ * name: 'GPT-4 Turbo Chatbot',
97
+ * },
98
+ * );
99
+ * ```
100
+ */
101
+ update(systemID, body = {}, options) {
102
+ return this._client.patch((0, path_1.path) `/systems/${systemID}`, { body, ...options });
103
+ }
104
+ /**
105
+ * Retrieve a paginated list of all systems. Systems are ordered by creation date.
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * // Automatically fetches more pages as needed.
110
+ * for await (const system of client.systems.list('314')) {
111
+ * // ...
112
+ * }
113
+ * ```
114
+ */
115
+ list(projectID, query = {}, options) {
116
+ return this._client.getAPIList((0, path_1.path) `/projects/${projectID}/systems`, (pagination_1.PaginatedResponse), {
117
+ query,
118
+ ...options,
119
+ });
120
+ }
121
+ /**
122
+ * Delete a system definition by ID. This will not delete associated system
123
+ * versions.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const system = await client.systems.delete(
128
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
129
+ * );
130
+ * ```
131
+ */
132
+ delete(systemID, options) {
133
+ return this._client.delete((0, path_1.path) `/systems/${systemID}`, options);
134
+ }
135
+ /**
136
+ * Retrieve a specific system by ID.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const system = await client.systems.get(
141
+ * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
142
+ * );
143
+ * ```
144
+ */
145
+ get(systemID, options) {
146
+ return this._client.get((0, path_1.path) `/systems/${systemID}`, options);
147
+ }
148
+ }
149
+ exports.Systems = Systems;
150
+ Systems.Versions = versions_1.Versions;
151
+ //# sourceMappingURL=systems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systems.js","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAClD,mEAA0C;AAC1C,4CAMoB;AAEpB,yDAAqG;AAErG,uDAAiD;AAEjD,MAAa,OAAQ,SAAQ,sBAAW;IAAxC;;QACE,aAAQ,GAAyB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAkJ1E,CAAC;IAhJC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,MAAM,CAAC,SAAiB,EAAE,IAAwB,EAAE,OAAwB;QAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,aAAa,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CACJ,QAAgB,EAChB,OAA8C,EAAE,EAChD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,WAAI,EAAA,YAAY,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,CACF,SAAiB,EACjB,QAA6C,EAAE,EAC/C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAA,WAAI,EAAA,aAAa,SAAS,UAAU,EAAE,CAAA,8BAAyB,CAAA,EAAE;YAC9F,KAAK;YACL,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,QAAgB,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,YAAY,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;OASG;IACH,GAAG,CAAC,QAAgB,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,YAAY,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;CACF;AAnJD,0BAmJC;AAoHD,OAAO,CAAC,QAAQ,GAAG,mBAAQ,CAAC"}