scorecard-ai 1.1.0 → 2.0.0-alpha.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 (98) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +4 -5
  3. package/client.d.mts +13 -13
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +13 -13
  6. package/client.d.ts.map +1 -1
  7. package/client.js +27 -25
  8. package/client.js.map +1 -1
  9. package/client.mjs +16 -14
  10. package/client.mjs.map +1 -1
  11. package/core/resource.d.mts +1 -1
  12. package/core/resource.d.mts.map +1 -1
  13. package/core/resource.d.ts +1 -1
  14. package/core/resource.d.ts.map +1 -1
  15. package/core/resource.js.map +1 -1
  16. package/core/resource.mjs.map +1 -1
  17. package/internal/headers.d.mts.map +1 -1
  18. package/internal/headers.d.ts.map +1 -1
  19. package/internal/headers.js +4 -4
  20. package/internal/headers.js.map +1 -1
  21. package/internal/headers.mjs +4 -4
  22. package/internal/headers.mjs.map +1 -1
  23. package/internal/request-options.d.mts +1 -0
  24. package/internal/request-options.d.mts.map +1 -1
  25. package/internal/request-options.d.ts +1 -0
  26. package/internal/request-options.d.ts.map +1 -1
  27. package/internal/request-options.js.map +1 -1
  28. package/internal/request-options.mjs.map +1 -1
  29. package/internal/uploads.js +1 -1
  30. package/internal/uploads.js.map +1 -1
  31. package/internal/uploads.mjs +1 -1
  32. package/internal/uploads.mjs.map +1 -1
  33. package/internal/utils/log.js +1 -1
  34. package/internal/utils/log.js.map +1 -1
  35. package/internal/utils/log.mjs +1 -1
  36. package/internal/utils/log.mjs.map +1 -1
  37. package/internal/utils/path.d.mts.map +1 -1
  38. package/internal/utils/path.d.ts.map +1 -1
  39. package/internal/utils/path.js.map +1 -1
  40. package/internal/utils/path.mjs +1 -1
  41. package/internal/utils/path.mjs.map +1 -1
  42. package/internal/utils/values.d.mts +2 -0
  43. package/internal/utils/values.d.mts.map +1 -1
  44. package/internal/utils/values.d.ts +2 -0
  45. package/internal/utils/values.d.ts.map +1 -1
  46. package/internal/utils/values.js +4 -1
  47. package/internal/utils/values.js.map +1 -1
  48. package/internal/utils/values.mjs +2 -0
  49. package/internal/utils/values.mjs.map +1 -1
  50. package/package.json +1 -1
  51. package/resources/index.d.mts +1 -1
  52. package/resources/index.d.mts.map +1 -1
  53. package/resources/index.d.ts +1 -1
  54. package/resources/index.d.ts.map +1 -1
  55. package/resources/systems/index.d.mts +2 -2
  56. package/resources/systems/index.d.mts.map +1 -1
  57. package/resources/systems/index.d.ts +2 -2
  58. package/resources/systems/index.d.ts.map +1 -1
  59. package/resources/systems/index.js.map +1 -1
  60. package/resources/systems/index.mjs +1 -1
  61. package/resources/systems/index.mjs.map +1 -1
  62. package/resources/systems/systems.d.mts +63 -125
  63. package/resources/systems/systems.d.mts.map +1 -1
  64. package/resources/systems/systems.d.ts +63 -125
  65. package/resources/systems/systems.d.ts.map +1 -1
  66. package/resources/systems/systems.js +21 -74
  67. package/resources/systems/systems.js.map +1 -1
  68. package/resources/systems/systems.mjs +22 -75
  69. package/resources/systems/systems.mjs.map +1 -1
  70. package/resources/systems/versions.d.mts +23 -74
  71. package/resources/systems/versions.d.mts.map +1 -1
  72. package/resources/systems/versions.d.ts +23 -74
  73. package/resources/systems/versions.d.ts.map +1 -1
  74. package/resources/systems/versions.js +20 -54
  75. package/resources/systems/versions.js.map +1 -1
  76. package/resources/systems/versions.mjs +20 -54
  77. package/resources/systems/versions.mjs.map +1 -1
  78. package/src/client.ts +39 -27
  79. package/src/core/resource.ts +1 -1
  80. package/src/internal/headers.ts +5 -5
  81. package/src/internal/request-options.ts +1 -0
  82. package/src/internal/uploads.ts +1 -1
  83. package/src/internal/utils/log.ts +1 -1
  84. package/src/internal/utils/path.ts +1 -1
  85. package/src/internal/utils/values.ts +3 -0
  86. package/src/resources/index.ts +1 -1
  87. package/src/resources/systems/index.ts +2 -8
  88. package/src/resources/systems/systems.ts +68 -141
  89. package/src/resources/systems/versions.ts +25 -95
  90. package/src/version.ts +1 -1
  91. package/version.d.mts +1 -1
  92. package/version.d.mts.map +1 -1
  93. package/version.d.ts +1 -1
  94. package/version.d.ts.map +1 -1
  95. package/version.js +1 -1
  96. package/version.js.map +1 -1
  97. package/version.mjs +1 -1
  98. package/version.mjs.map +1 -1
@@ -1,90 +1,23 @@
1
1
  import { APIResource } from "../../core/resource.js";
2
2
  import * as VersionsAPI from "./versions.js";
3
- import { SystemVersion, SystemVersionsPaginatedResponse, VersionCreateParams, VersionListParams, Versions } from "./versions.js";
3
+ import { SystemVersion, VersionUpsertParams, Versions } from "./versions.js";
4
4
  import { APIPromise } from "../../core/api-promise.js";
5
5
  import { PagePromise, PaginatedResponse, type PaginatedResponseParams } from "../../core/pagination.js";
6
6
  import { RequestOptions } from "../../internal/request-options.js";
7
7
  export declare class Systems extends APIResource {
8
8
  versions: VersionsAPI.Versions;
9
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
10
+ * Update an existing system. Only the fields provided in the request body will be
11
+ * updated. If a field is provided, the new content will replace the existing
12
+ * content. If a field is not provided, the existing content will remain unchanged.
79
13
  *
80
14
  * @example
81
15
  * ```ts
82
16
  * const system = await client.systems.update(
83
17
  * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
84
18
  * {
85
- * description:
86
- * 'Updated production chatbot powered by GPT-4 Turbo',
87
- * name: 'GPT-4 Turbo Chatbot',
19
+ * productionVersionId:
20
+ * '87654321-4d3b-4ae4-8c7a-4b6e2a19ccf3',
88
21
  * },
89
22
  * );
90
23
  * ```
@@ -125,21 +58,24 @@ export declare class Systems extends APIResource {
125
58
  * ```
126
59
  */
127
60
  get(systemID: string, options?: RequestOptions): APIPromise<System>;
61
+ /**
62
+ * Create a new system. If one with the same name in the project exists, it updates
63
+ * it instead.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const system = await client.systems.upsert('314', {
68
+ * config: { temperature: 0.1, maxTokens: 1024 },
69
+ * description: 'Production chatbot powered by GPT-4',
70
+ * name: 'GPT-4 Chatbot',
71
+ * });
72
+ * ```
73
+ */
74
+ upsert(projectID: string, body: SystemUpsertParams, options?: RequestOptions): APIPromise<System>;
128
75
  }
129
76
  export type SystemsPaginatedResponse = PaginatedResponse<System>;
130
77
  /**
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.
78
+ * A System Under Test (SUT).
143
79
  *
144
80
  * Systems are templates - to run evaluations, pair them with a SystemVersion that
145
81
  * provides specific parameter values.
@@ -149,26 +85,43 @@ export interface System {
149
85
  * The ID of the system.
150
86
  */
151
87
  id: string;
152
- /**
153
- * The schema of the system's configuration.
154
- */
155
- configSchema: Record<string, unknown>;
156
88
  /**
157
89
  * The description of the system.
158
90
  */
159
91
  description: string;
160
92
  /**
161
- * The schema of the system's inputs.
93
+ * The name of the system. Unique within the project.
162
94
  */
163
- inputSchema: Record<string, unknown>;
95
+ name: string;
164
96
  /**
165
- * The name of the system.
97
+ * The production version of the system.
166
98
  */
167
- name: string;
99
+ productionVersion: VersionsAPI.SystemVersion;
168
100
  /**
169
- * The schema of the system's outputs.
101
+ * The versions of the system.
170
102
  */
171
- outputSchema: Record<string, unknown>;
103
+ versions: Array<System.Version>;
104
+ }
105
+ export declare namespace System {
106
+ /**
107
+ * A SystemVersion defines the specific settings for a System Under Test.
108
+ *
109
+ * System versions contain parameter values that determine system behavior during
110
+ * evaluation. They are immutable snapshots - once created, they never change.
111
+ *
112
+ * When running evaluations, you reference a specific systemVersionId to establish
113
+ * which system version to test.
114
+ */
115
+ interface Version {
116
+ /**
117
+ * The ID of the system version.
118
+ */
119
+ id: string;
120
+ /**
121
+ * The name of the system version.
122
+ */
123
+ name: string;
124
+ }
172
125
  }
173
126
  export interface SystemDeleteResponse {
174
127
  /**
@@ -176,54 +129,39 @@ export interface SystemDeleteResponse {
176
129
  */
177
130
  success: boolean;
178
131
  }
179
- export interface SystemCreateParams {
180
- /**
181
- * The schema of the system's configuration.
182
- */
183
- configSchema: Record<string, unknown>;
132
+ export interface SystemUpdateParams {
184
133
  /**
185
134
  * The description of the system.
186
135
  */
187
- description: string;
188
- /**
189
- * The schema of the system's inputs.
190
- */
191
- inputSchema: Record<string, unknown>;
136
+ description?: string;
192
137
  /**
193
- * The name of the system.
138
+ * The name of the system. Unique within the project.
194
139
  */
195
- name: string;
140
+ name?: string;
196
141
  /**
197
- * The schema of the system's outputs.
142
+ * The ID of the production version of the system.
198
143
  */
199
- outputSchema: Record<string, unknown>;
144
+ productionVersionId?: string;
200
145
  }
201
- export interface SystemUpdateParams {
146
+ export interface SystemListParams extends PaginatedResponseParams {
147
+ }
148
+ export interface SystemUpsertParams {
202
149
  /**
203
- * The schema of the system's configuration.
150
+ * The configuration of the system.
204
151
  */
205
- configSchema?: Record<string, unknown>;
152
+ config: Record<string, unknown>;
206
153
  /**
207
154
  * The description of the system.
208
155
  */
209
156
  description?: string;
210
157
  /**
211
- * The schema of the system's inputs.
212
- */
213
- inputSchema?: Record<string, unknown>;
214
- /**
215
- * The name of the system.
158
+ * The name of the system. Should be unique within the project. Default is "Default
159
+ * system"
216
160
  */
217
161
  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
162
  }
225
163
  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, };
164
+ export { type System as System, type SystemDeleteResponse as SystemDeleteResponse, type SystemsPaginatedResponse as SystemsPaginatedResponse, type SystemUpdateParams as SystemUpdateParams, type SystemListParams as SystemListParams, type SystemUpsertParams as SystemUpsertParams, };
165
+ export { Versions as Versions, type SystemVersion as SystemVersion, type VersionUpsertParams as VersionUpsertParams, };
228
166
  }
229
167
  //# sourceMappingURL=systems.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"systems.d.ts","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systems.d.ts","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":"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"}
@@ -14,86 +14,17 @@ class Systems extends resource_1.APIResource {
14
14
  this.versions = new VersionsAPI.Versions(this._client);
15
15
  }
16
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
17
+ * Update an existing system. Only the fields provided in the request body will be
18
+ * updated. If a field is provided, the new content will replace the existing
19
+ * content. If a field is not provided, the existing content will remain unchanged.
88
20
  *
89
21
  * @example
90
22
  * ```ts
91
23
  * const system = await client.systems.update(
92
24
  * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
93
25
  * {
94
- * description:
95
- * 'Updated production chatbot powered by GPT-4 Turbo',
96
- * name: 'GPT-4 Turbo Chatbot',
26
+ * productionVersionId:
27
+ * '87654321-4d3b-4ae4-8c7a-4b6e2a19ccf3',
97
28
  * },
98
29
  * );
99
30
  * ```
@@ -145,6 +76,22 @@ class Systems extends resource_1.APIResource {
145
76
  get(systemID, options) {
146
77
  return this._client.get((0, path_1.path) `/systems/${systemID}`, options);
147
78
  }
79
+ /**
80
+ * Create a new system. If one with the same name in the project exists, it updates
81
+ * it instead.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * const system = await client.systems.upsert('314', {
86
+ * config: { temperature: 0.1, maxTokens: 1024 },
87
+ * description: 'Production chatbot powered by GPT-4',
88
+ * name: 'GPT-4 Chatbot',
89
+ * });
90
+ * ```
91
+ */
92
+ upsert(projectID, body, options) {
93
+ return this._client.post((0, path_1.path) `/projects/${projectID}/systems`, { body, ...options });
94
+ }
148
95
  }
149
96
  exports.Systems = Systems;
150
97
  Systems.Versions = versions_1.Versions;
@@ -1 +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"}
1
+ {"version":3,"file":"systems.js","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAClD,mEAA0C;AAC1C,4CAA0E;AAE1E,yDAAqG;AAErG,uDAAiD;AAEjD,MAAa,OAAQ,SAAQ,sBAAW;IAAxC;;QACE,aAAQ,GAAyB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IA6F1E,CAAC;IA3FC;;;;;;;;;;;;;;;OAeG;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;IAED;;;;;;;;;;;;OAYG;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;CACF;AA9FD,0BA8FC;AAwGD,OAAO,CAAC,QAAQ,GAAG,mBAAQ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { APIResource } from "../../core/resource.mjs";
3
3
  import * as VersionsAPI from "./versions.mjs";
4
- import { Versions, } from "./versions.mjs";
4
+ import { Versions } from "./versions.mjs";
5
5
  import { PaginatedResponse } from "../../core/pagination.mjs";
6
6
  import { path } from "../../internal/utils/path.mjs";
7
7
  export class Systems extends APIResource {
@@ -10,86 +10,17 @@ export class Systems extends APIResource {
10
10
  this.versions = new VersionsAPI.Versions(this._client);
11
11
  }
12
12
  /**
13
- * Create a new system definition that specifies the interface contracts for a
14
- * component you want to evaluate.
15
- *
16
- * A system acts as a template that defines three key contracts through JSON
17
- * Schemas:
18
- *
19
- * 1. Input Schema: What data your system accepts (e.g., user queries, context
20
- * documents)
21
- * 2. Output Schema: What data your system produces (e.g., responses, confidence
22
- * scores)
23
- * 3. Config Schema: What parameters can be adjusted (e.g., model selection,
24
- * temperature)
25
- *
26
- * This separation lets you evaluate any system as a black box, focusing on its
27
- * interface rather than implementation details.
28
- *
29
- * @example
30
- * ```ts
31
- * const system = await client.systems.create('314', {
32
- * configSchema: {
33
- * type: 'object',
34
- * properties: {
35
- * temperature: { type: 'number' },
36
- * maxTokens: { type: 'integer' },
37
- * model: { type: 'string', enum: ['gpt-4', 'gpt-4-turbo'] },
38
- * },
39
- * required: ['model'],
40
- * },
41
- * description: 'Production chatbot powered by GPT-4',
42
- * inputSchema: {
43
- * type: 'object',
44
- * properties: {
45
- * messages: {
46
- * type: 'array',
47
- * items: {
48
- * type: 'object',
49
- * properties: {
50
- * role: { type: 'string', enum: ['system', 'user', 'assistant'] },
51
- * content: { type: 'string' },
52
- * },
53
- * required: ['role', 'content'],
54
- * },
55
- * },
56
- * },
57
- * required: ['messages'],
58
- * },
59
- * name: 'GPT-4 Chatbot',
60
- * outputSchema: {
61
- * type: 'object',
62
- * properties: { response: { type: 'string' } },
63
- * required: ['response'],
64
- * },
65
- * });
66
- * ```
67
- */
68
- create(projectID, body, options) {
69
- return this._client.post(path `/projects/${projectID}/systems`, { body, ...options });
70
- }
71
- /**
72
- * Update an existing system definition. Only the fields provided in the request
73
- * body will be updated. If a field is provided, the new content will replace the
74
- * existing content. If a field is not provided, the existing content will remain
75
- * unchanged.
76
- *
77
- * When updating schemas:
78
- *
79
- * - The system will accept your changes regardless of compatibility with existing
80
- * configurations
81
- * - Schema updates won't invalidate existing evaluations or configurations
82
- * - For significant redesigns, creating a new system definition provides a cleaner
83
- * separation
13
+ * Update an existing system. Only the fields provided in the request body will be
14
+ * updated. If a field is provided, the new content will replace the existing
15
+ * content. If a field is not provided, the existing content will remain unchanged.
84
16
  *
85
17
  * @example
86
18
  * ```ts
87
19
  * const system = await client.systems.update(
88
20
  * '12345678-0a8b-4f66-b6f3-2ddcfa097257',
89
21
  * {
90
- * description:
91
- * 'Updated production chatbot powered by GPT-4 Turbo',
92
- * name: 'GPT-4 Turbo Chatbot',
22
+ * productionVersionId:
23
+ * '87654321-4d3b-4ae4-8c7a-4b6e2a19ccf3',
93
24
  * },
94
25
  * );
95
26
  * ```
@@ -141,6 +72,22 @@ export class Systems extends APIResource {
141
72
  get(systemID, options) {
142
73
  return this._client.get(path `/systems/${systemID}`, options);
143
74
  }
75
+ /**
76
+ * Create a new system. If one with the same name in the project exists, it updates
77
+ * it instead.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const system = await client.systems.upsert('314', {
82
+ * config: { temperature: 0.1, maxTokens: 1024 },
83
+ * description: 'Production chatbot powered by GPT-4',
84
+ * name: 'GPT-4 Chatbot',
85
+ * });
86
+ * ```
87
+ */
88
+ upsert(projectID, body, options) {
89
+ return this._client.post(path `/projects/${projectID}/systems`, { body, ...options });
90
+ }
144
91
  }
145
92
  Systems.Versions = Versions;
146
93
  //# sourceMappingURL=systems.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"systems.mjs","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OACf,KAAK,WAAW;OAChB,EAKL,QAAQ,GACT;OAEM,EAAe,iBAAiB,EAAgC;OAEhE,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,OAAQ,SAAQ,WAAW;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,IAAI,CAAA,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,IAAI,CAAA,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,IAAI,CAAA,aAAa,SAAS,UAAU,EAAE,CAAA,iBAAyB,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,IAAI,CAAA,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,IAAI,CAAA,YAAY,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;CACF;AAoHD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"systems.mjs","sourceRoot":"","sources":["../../src/resources/systems/systems.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OACf,KAAK,WAAW;OAChB,EAAsC,QAAQ,EAAE;OAEhD,EAAe,iBAAiB,EAAgC;OAEhE,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAAxC;;QACE,aAAQ,GAAyB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IA6F1E,CAAC;IA3FC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CACJ,QAAgB,EAChB,OAA8C,EAAE,EAChD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,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,IAAI,CAAA,aAAa,SAAS,UAAU,EAAE,CAAA,iBAAyB,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,IAAI,CAAA,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,IAAI,CAAA,YAAY,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAiB,EAAE,IAAwB,EAAE,OAAwB;QAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,aAAa,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;CACF;AAwGD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC"}