@evalstudio/cli 0.1.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 (48) hide show
  1. package/dist/commands/connector.d.ts +3 -0
  2. package/dist/commands/connector.d.ts.map +1 -0
  3. package/dist/commands/connector.js +287 -0
  4. package/dist/commands/connector.js.map +1 -0
  5. package/dist/commands/eval.d.ts +3 -0
  6. package/dist/commands/eval.d.ts.map +1 -0
  7. package/dist/commands/eval.js +270 -0
  8. package/dist/commands/eval.js.map +1 -0
  9. package/dist/commands/init.d.ts +3 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +28 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/llm-provider.d.ts +3 -0
  14. package/dist/commands/llm-provider.d.ts.map +1 -0
  15. package/dist/commands/llm-provider.js +245 -0
  16. package/dist/commands/llm-provider.js.map +1 -0
  17. package/dist/commands/persona.d.ts +3 -0
  18. package/dist/commands/persona.d.ts.map +1 -0
  19. package/dist/commands/persona.js +198 -0
  20. package/dist/commands/persona.js.map +1 -0
  21. package/dist/commands/project.d.ts +3 -0
  22. package/dist/commands/project.d.ts.map +1 -0
  23. package/dist/commands/project.js +318 -0
  24. package/dist/commands/project.js.map +1 -0
  25. package/dist/commands/run.d.ts +3 -0
  26. package/dist/commands/run.d.ts.map +1 -0
  27. package/dist/commands/run.js +291 -0
  28. package/dist/commands/run.js.map +1 -0
  29. package/dist/commands/scenario.d.ts +3 -0
  30. package/dist/commands/scenario.d.ts.map +1 -0
  31. package/dist/commands/scenario.js +326 -0
  32. package/dist/commands/scenario.js.map +1 -0
  33. package/dist/commands/serve.d.ts +3 -0
  34. package/dist/commands/serve.d.ts.map +1 -0
  35. package/dist/commands/serve.js +70 -0
  36. package/dist/commands/serve.js.map +1 -0
  37. package/dist/commands/status.d.ts +3 -0
  38. package/dist/commands/status.d.ts.map +1 -0
  39. package/dist/commands/status.js +22 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +32 -0
  44. package/dist/index.js.map +1 -0
  45. package/package.json +56 -0
  46. package/web-dist/assets/index-Bo4mQzrp.css +1 -0
  47. package/web-dist/assets/index-CDG62Gwh.js +281 -0
  48. package/web-dist/index.html +14 -0
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const connectorCommand: Command;
3
+ //# sourceMappingURL=connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/commands/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,eAAO,MAAM,gBAAgB,SA6V1B,CAAC"}
@@ -0,0 +1,287 @@
1
+ import { Command } from "commander";
2
+ import { createConnector, deleteConnector, getConnector, getConnectorByName, getConnectorTypes, getProject, getProjectByName, listConnectors, updateConnector, } from "evalstudio";
3
+ function resolveProject(identifier) {
4
+ return getProject(identifier) ?? getProjectByName(identifier);
5
+ }
6
+ const validConnectorTypes = ["http", "langgraph"];
7
+ const validAuthTypes = ["none", "api-key", "bearer", "basic"];
8
+ export const connectorCommand = new Command("connector")
9
+ .description("Manage connectors for bridging EvalStudio to external APIs")
10
+ .addCommand(new Command("create")
11
+ .description("Create a new connector configuration")
12
+ .argument("<name>", "Connector name")
13
+ .requiredOption("-p, --project <project>", "Project ID or name")
14
+ .requiredOption("--type <type>", "Connector type (http or langgraph)")
15
+ .requiredOption("--base-url <url>", "Base URL for the API endpoint")
16
+ .option("--auth-type <authType>", "Authentication type (none, api-key, bearer, basic)")
17
+ .option("--auth-value <value>", "Authentication value (API key, token, or base64 credentials)")
18
+ .option("--config <json>", "Configuration as JSON string (e.g., '{\"assistantId\": \"my-agent\"}' for langgraph)")
19
+ .option("--json", "Output as JSON")
20
+ .action((name, options) => {
21
+ try {
22
+ const project = resolveProject(options.project);
23
+ if (!project) {
24
+ console.error(`Error: Project "${options.project}" not found`);
25
+ process.exit(1);
26
+ }
27
+ if (!validConnectorTypes.includes(options.type)) {
28
+ console.error(`Error: Invalid type "${options.type}". Must be one of: ${validConnectorTypes.join(", ")}`);
29
+ process.exit(1);
30
+ }
31
+ if (options.authType && !validAuthTypes.includes(options.authType)) {
32
+ console.error(`Error: Invalid auth type "${options.authType}". Must be one of: ${validAuthTypes.join(", ")}`);
33
+ process.exit(1);
34
+ }
35
+ let config;
36
+ if (options.config) {
37
+ try {
38
+ config = JSON.parse(options.config);
39
+ }
40
+ catch {
41
+ console.error(`Error: Invalid JSON in --config`);
42
+ process.exit(1);
43
+ }
44
+ }
45
+ const connector = createConnector({
46
+ projectId: project.id,
47
+ name,
48
+ type: options.type,
49
+ baseUrl: options.baseUrl,
50
+ authType: options.authType,
51
+ authValue: options.authValue,
52
+ config,
53
+ });
54
+ if (options.json) {
55
+ console.log(JSON.stringify(connector, null, 2));
56
+ }
57
+ else {
58
+ console.log(`Connector created successfully`);
59
+ console.log(` ID: ${connector.id}`);
60
+ console.log(` Name: ${connector.name}`);
61
+ console.log(` Project: ${project.name}`);
62
+ console.log(` Type: ${connector.type}`);
63
+ console.log(` Base URL: ${connector.baseUrl}`);
64
+ if (connector.authType) {
65
+ console.log(` Auth: ${connector.authType}`);
66
+ }
67
+ if (connector.authValue) {
68
+ console.log(` Auth Val: ${maskValue(connector.authValue)}`);
69
+ }
70
+ if (connector.config) {
71
+ console.log(` Config: ${JSON.stringify(connector.config)}`);
72
+ }
73
+ console.log(` Created: ${connector.createdAt}`);
74
+ }
75
+ }
76
+ catch (error) {
77
+ if (error instanceof Error) {
78
+ console.error(`Error: ${error.message}`);
79
+ process.exit(1);
80
+ }
81
+ throw error;
82
+ }
83
+ }))
84
+ .addCommand(new Command("list")
85
+ .description("List connector configurations")
86
+ .option("-p, --project <project>", "Filter by project ID or name")
87
+ .option("--json", "Output as JSON")
88
+ .action((options) => {
89
+ let projectId;
90
+ if (options.project) {
91
+ const project = resolveProject(options.project);
92
+ if (!project) {
93
+ console.error(`Error: Project "${options.project}" not found`);
94
+ process.exit(1);
95
+ }
96
+ projectId = project.id;
97
+ }
98
+ const connectors = listConnectors(projectId);
99
+ if (options.json) {
100
+ console.log(JSON.stringify(connectors, null, 2));
101
+ }
102
+ else {
103
+ if (connectors.length === 0) {
104
+ console.log("No connectors found");
105
+ return;
106
+ }
107
+ console.log("Connectors:");
108
+ console.log("-----------");
109
+ for (const connector of connectors) {
110
+ const project = getProject(connector.projectId);
111
+ console.log(` ${connector.name} (${connector.id})`);
112
+ if (project) {
113
+ console.log(` Project: ${project.name}`);
114
+ }
115
+ console.log(` Type: ${connector.type}`);
116
+ console.log(` Base URL: ${connector.baseUrl}`);
117
+ }
118
+ }
119
+ }))
120
+ .addCommand(new Command("show")
121
+ .description("Show connector details")
122
+ .argument("<identifier>", "Connector ID")
123
+ .option("-p, --project <project>", "Project ID or name (for lookup by name)")
124
+ .option("--json", "Output as JSON")
125
+ .action((identifier, options) => {
126
+ let connector = getConnector(identifier);
127
+ if (!connector && options.project) {
128
+ const project = resolveProject(options.project);
129
+ if (project) {
130
+ connector = getConnectorByName(project.id, identifier);
131
+ }
132
+ }
133
+ if (!connector) {
134
+ console.error(`Error: Connector "${identifier}" not found`);
135
+ process.exit(1);
136
+ }
137
+ const project = getProject(connector.projectId);
138
+ if (options.json) {
139
+ console.log(JSON.stringify(connector, null, 2));
140
+ }
141
+ else {
142
+ console.log(`Connector: ${connector.name}`);
143
+ console.log(`-----------`);
144
+ console.log(` ID: ${connector.id}`);
145
+ console.log(` Name: ${connector.name}`);
146
+ console.log(` Project: ${project?.name ?? connector.projectId}`);
147
+ console.log(` Type: ${connector.type}`);
148
+ console.log(` Base URL: ${connector.baseUrl}`);
149
+ if (connector.authType) {
150
+ console.log(` Auth: ${connector.authType}`);
151
+ }
152
+ if (connector.authValue) {
153
+ console.log(` Auth Val: ${maskValue(connector.authValue)}`);
154
+ }
155
+ if (connector.config) {
156
+ console.log(` Config: ${JSON.stringify(connector.config)}`);
157
+ }
158
+ console.log(` Created: ${connector.createdAt}`);
159
+ console.log(` Updated: ${connector.updatedAt}`);
160
+ }
161
+ }))
162
+ .addCommand(new Command("update")
163
+ .description("Update a connector configuration")
164
+ .argument("<identifier>", "Connector ID")
165
+ .option("-n, --name <name>", "New connector name")
166
+ .option("--type <type>", "New connector type (http or langgraph)")
167
+ .option("--base-url <url>", "New base URL")
168
+ .option("--auth-type <authType>", "New authentication type")
169
+ .option("--auth-value <value>", "New authentication value")
170
+ .option("--config <json>", "New configuration as JSON string")
171
+ .option("--json", "Output as JSON")
172
+ .action((identifier, options) => {
173
+ const existing = getConnector(identifier);
174
+ if (!existing) {
175
+ console.error(`Error: Connector "${identifier}" not found`);
176
+ process.exit(1);
177
+ }
178
+ if (options.type &&
179
+ !validConnectorTypes.includes(options.type)) {
180
+ console.error(`Error: Invalid type "${options.type}". Must be one of: ${validConnectorTypes.join(", ")}`);
181
+ process.exit(1);
182
+ }
183
+ if (options.authType &&
184
+ !validAuthTypes.includes(options.authType)) {
185
+ console.error(`Error: Invalid auth type "${options.authType}". Must be one of: ${validAuthTypes.join(", ")}`);
186
+ process.exit(1);
187
+ }
188
+ let config;
189
+ if (options.config) {
190
+ try {
191
+ config = JSON.parse(options.config);
192
+ }
193
+ catch {
194
+ console.error(`Error: Invalid JSON in --config`);
195
+ process.exit(1);
196
+ }
197
+ }
198
+ try {
199
+ const updated = updateConnector(existing.id, {
200
+ name: options.name,
201
+ type: options.type,
202
+ baseUrl: options.baseUrl,
203
+ authType: options.authType,
204
+ authValue: options.authValue,
205
+ config,
206
+ });
207
+ if (!updated) {
208
+ console.error(`Error: Failed to update connector`);
209
+ process.exit(1);
210
+ }
211
+ const project = getProject(updated.projectId);
212
+ if (options.json) {
213
+ console.log(JSON.stringify(updated, null, 2));
214
+ }
215
+ else {
216
+ console.log(`Connector updated successfully`);
217
+ console.log(` ID: ${updated.id}`);
218
+ console.log(` Name: ${updated.name}`);
219
+ console.log(` Project: ${project?.name ?? updated.projectId}`);
220
+ console.log(` Type: ${updated.type}`);
221
+ console.log(` Base URL: ${updated.baseUrl}`);
222
+ if (updated.authType) {
223
+ console.log(` Auth: ${updated.authType}`);
224
+ }
225
+ if (updated.authValue) {
226
+ console.log(` Auth Val: ${maskValue(updated.authValue)}`);
227
+ }
228
+ if (updated.config) {
229
+ console.log(` Config: ${JSON.stringify(updated.config)}`);
230
+ }
231
+ console.log(` Updated: ${updated.updatedAt}`);
232
+ }
233
+ }
234
+ catch (error) {
235
+ if (error instanceof Error) {
236
+ console.error(`Error: ${error.message}`);
237
+ process.exit(1);
238
+ }
239
+ throw error;
240
+ }
241
+ }))
242
+ .addCommand(new Command("delete")
243
+ .description("Delete a connector configuration")
244
+ .argument("<identifier>", "Connector ID")
245
+ .option("--json", "Output as JSON")
246
+ .action((identifier, options) => {
247
+ const existing = getConnector(identifier);
248
+ if (!existing) {
249
+ console.error(`Error: Connector "${identifier}" not found`);
250
+ process.exit(1);
251
+ }
252
+ const deleted = deleteConnector(existing.id);
253
+ if (!deleted) {
254
+ console.error(`Error: Failed to delete connector`);
255
+ process.exit(1);
256
+ }
257
+ if (options.json) {
258
+ console.log(JSON.stringify({ deleted: true, id: existing.id }));
259
+ }
260
+ else {
261
+ console.log(`Connector "${existing.name}" deleted successfully`);
262
+ }
263
+ }))
264
+ .addCommand(new Command("types")
265
+ .description("List available connector types")
266
+ .option("--json", "Output as JSON")
267
+ .action((options) => {
268
+ const types = getConnectorTypes();
269
+ if (options.json) {
270
+ console.log(JSON.stringify(types, null, 2));
271
+ }
272
+ else {
273
+ console.log("Available Connector Types:");
274
+ console.log("--------------------------");
275
+ for (const [type, description] of Object.entries(types)) {
276
+ console.log(` ${type}`);
277
+ console.log(` ${description}`);
278
+ }
279
+ }
280
+ }));
281
+ function maskValue(value) {
282
+ if (value.length <= 8) {
283
+ return "****";
284
+ }
285
+ return `${value.slice(0, 4)}...${value.slice(-4)}`;
286
+ }
287
+ //# sourceMappingURL=connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../../src/commands/connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const evalCommand: Command;
3
+ //# sourceMappingURL=eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,eAAO,MAAM,WAAW,SAiTrB,CAAC"}
@@ -0,0 +1,270 @@
1
+ import { Command } from "commander";
2
+ import { createEval, deleteEval, getConnector, getConnectorByName, getProject, getProjectByName, getScenario, getScenarioByName, getEval, getEvalWithRelations, listEvals, updateEval, } from "evalstudio";
3
+ function resolveProject(identifier) {
4
+ return getProject(identifier) ?? getProjectByName(identifier);
5
+ }
6
+ function resolveScenario(projectId, identifier) {
7
+ return getScenario(identifier) ?? getScenarioByName(projectId, identifier);
8
+ }
9
+ function resolveConnector(projectId, identifier) {
10
+ return getConnector(identifier) ?? getConnectorByName(projectId, identifier);
11
+ }
12
+ function getEvalDisplayName(evalItem) {
13
+ return evalItem.name || evalItem.id;
14
+ }
15
+ export const evalCommand = new Command("eval")
16
+ .description("Manage evals")
17
+ .addCommand(new Command("create")
18
+ .description("Create a new eval")
19
+ .requiredOption("-n, --name <name>", "Eval name")
20
+ .requiredOption("-p, --project <project>", "Project ID or name")
21
+ .requiredOption("-c, --connector <connector>", "Connector ID or name (required)")
22
+ .requiredOption("--scenario <scenario>", "Scenario ID or name (required)")
23
+ .option("--json", "Output as JSON")
24
+ .action((options) => {
25
+ try {
26
+ const project = resolveProject(options.project);
27
+ if (!project) {
28
+ console.error(`Error: Project "${options.project}" not found`);
29
+ process.exit(1);
30
+ }
31
+ const connector = resolveConnector(project.id, options.connector);
32
+ if (!connector) {
33
+ console.error(`Error: Connector "${options.connector}" not found`);
34
+ process.exit(1);
35
+ }
36
+ const scenario = resolveScenario(project.id, options.scenario);
37
+ if (!scenario) {
38
+ console.error(`Error: Scenario "${options.scenario}" not found`);
39
+ process.exit(1);
40
+ }
41
+ const evalItem = createEval({
42
+ projectId: project.id,
43
+ name: options.name,
44
+ scenarioIds: [scenario.id],
45
+ connectorId: connector.id,
46
+ });
47
+ if (options.json) {
48
+ console.log(JSON.stringify(evalItem, null, 2));
49
+ }
50
+ else {
51
+ console.log(`Eval created successfully`);
52
+ console.log(` ID: ${evalItem.id}`);
53
+ console.log(` Name: ${evalItem.name}`);
54
+ console.log(` Project: ${project.name}`);
55
+ console.log(` Connector: ${connector.name}`);
56
+ console.log(` Scenario: ${scenario.name}`);
57
+ if (scenario.successCriteria) {
58
+ console.log(` Success: ${scenario.successCriteria}`);
59
+ }
60
+ if (scenario.failureCriteria) {
61
+ console.log(` Failure: ${scenario.failureCriteria}`);
62
+ }
63
+ if (scenario.maxMessages) {
64
+ console.log(` Max Msgs: ${scenario.maxMessages}`);
65
+ }
66
+ console.log(` Created: ${evalItem.createdAt}`);
67
+ }
68
+ }
69
+ catch (error) {
70
+ if (error instanceof Error) {
71
+ console.error(`Error: ${error.message}`);
72
+ process.exit(1);
73
+ }
74
+ throw error;
75
+ }
76
+ }))
77
+ .addCommand(new Command("list")
78
+ .description("List evals")
79
+ .option("-p, --project <project>", "Filter by project ID or name")
80
+ .option("--json", "Output as JSON")
81
+ .action((options) => {
82
+ let projectId;
83
+ if (options.project) {
84
+ const project = resolveProject(options.project);
85
+ if (!project) {
86
+ console.error(`Error: Project "${options.project}" not found`);
87
+ process.exit(1);
88
+ }
89
+ projectId = project.id;
90
+ }
91
+ const evals = listEvals(projectId);
92
+ if (options.json) {
93
+ console.log(JSON.stringify(evals, null, 2));
94
+ }
95
+ else {
96
+ if (evals.length === 0) {
97
+ console.log("No evals found");
98
+ return;
99
+ }
100
+ console.log("Evals:");
101
+ console.log("------");
102
+ for (const evalItem of evals) {
103
+ const project = getProject(evalItem.projectId);
104
+ const firstScenario = evalItem.scenarioIds?.[0] ? getScenario(evalItem.scenarioIds[0]) : undefined;
105
+ const displayName = getEvalDisplayName(evalItem);
106
+ console.log(` ${displayName} (${evalItem.id})`);
107
+ if (project) {
108
+ console.log(` Project: ${project.name}`);
109
+ }
110
+ if (evalItem.scenarioIds.length > 1) {
111
+ console.log(` Scenarios: ${evalItem.scenarioIds.length}`);
112
+ }
113
+ }
114
+ }
115
+ }))
116
+ .addCommand(new Command("show")
117
+ .description("Show eval details")
118
+ .argument("<id>", "Eval ID")
119
+ .option("--expand", "Include scenario details")
120
+ .option("--json", "Output as JSON")
121
+ .action((id, options) => {
122
+ const evalItem = options.expand
123
+ ? getEvalWithRelations(id)
124
+ : getEval(id);
125
+ if (!evalItem) {
126
+ console.error(`Error: Eval "${id}" not found`);
127
+ process.exit(1);
128
+ }
129
+ const project = getProject(evalItem.projectId);
130
+ const displayName = getEvalDisplayName(evalItem);
131
+ if (options.json) {
132
+ console.log(JSON.stringify(evalItem, null, 2));
133
+ }
134
+ else {
135
+ const firstScenarioId = evalItem.scenarioIds?.[0];
136
+ const firstScenario = firstScenarioId ? getScenario(firstScenarioId) : undefined;
137
+ console.log(`Eval: ${displayName}`);
138
+ console.log(`------`);
139
+ console.log(` ID: ${evalItem.id}`);
140
+ console.log(` Name: ${evalItem.name}`);
141
+ console.log(` Project: ${project?.name ?? evalItem.projectId}`);
142
+ if (firstScenario?.successCriteria) {
143
+ console.log(` Success: ${firstScenario.successCriteria}`);
144
+ }
145
+ if (firstScenario?.failureCriteria) {
146
+ console.log(` Failure: ${firstScenario.failureCriteria}`);
147
+ }
148
+ if (firstScenario?.maxMessages) {
149
+ console.log(` Max Msgs: ${firstScenario.maxMessages}`);
150
+ }
151
+ if (options.expand) {
152
+ const withRelations = evalItem;
153
+ if (withRelations.scenarios?.length) {
154
+ console.log(` Scenarios:`);
155
+ for (const scenario of withRelations.scenarios) {
156
+ console.log(` - ${scenario.name}`);
157
+ if (scenario.instructions) {
158
+ console.log(` ${scenario.instructions}`);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ else {
164
+ console.log(` Scenarios: ${evalItem.scenarioIds?.length ?? 0}`);
165
+ if (firstScenario) {
166
+ console.log(` - ${firstScenario.name}`);
167
+ }
168
+ }
169
+ console.log(` Created: ${evalItem.createdAt}`);
170
+ console.log(` Updated: ${evalItem.updatedAt}`);
171
+ }
172
+ }))
173
+ .addCommand(new Command("update")
174
+ .description("Update an eval")
175
+ .argument("<id>", "Eval ID")
176
+ .option("-n, --name <name>", "New eval name")
177
+ .option("--scenario <scenario>", "New scenario ID or name")
178
+ .option("--connector <connector>", "New connector ID or name")
179
+ .option("--json", "Output as JSON")
180
+ .action((id, options) => {
181
+ const existing = getEval(id);
182
+ if (!existing) {
183
+ console.error(`Error: Eval "${id}" not found`);
184
+ process.exit(1);
185
+ }
186
+ try {
187
+ let scenarioIds;
188
+ if (options.scenario) {
189
+ const scenario = resolveScenario(existing.projectId, options.scenario);
190
+ if (!scenario) {
191
+ console.error(`Error: Scenario "${options.scenario}" not found`);
192
+ process.exit(1);
193
+ }
194
+ scenarioIds = [scenario.id];
195
+ }
196
+ let connectorId;
197
+ if (options.connector) {
198
+ const connector = resolveConnector(existing.projectId, options.connector);
199
+ if (!connector) {
200
+ console.error(`Error: Connector "${options.connector}" not found`);
201
+ process.exit(1);
202
+ }
203
+ connectorId = connector.id;
204
+ }
205
+ const updated = updateEval(existing.id, {
206
+ name: options.name,
207
+ scenarioIds,
208
+ connectorId,
209
+ });
210
+ if (!updated) {
211
+ console.error(`Error: Failed to update eval`);
212
+ process.exit(1);
213
+ }
214
+ const project = getProject(updated.projectId);
215
+ const firstScenarioId = updated.scenarioIds?.[0];
216
+ const firstScenario = firstScenarioId ? getScenario(firstScenarioId) : undefined;
217
+ const displayName = getEvalDisplayName(updated);
218
+ if (options.json) {
219
+ console.log(JSON.stringify(updated, null, 2));
220
+ }
221
+ else {
222
+ console.log(`Eval updated successfully`);
223
+ console.log(` ID: ${updated.id}`);
224
+ console.log(` Name: ${updated.name}`);
225
+ console.log(` Project: ${project?.name ?? updated.projectId}`);
226
+ if (firstScenario?.successCriteria) {
227
+ console.log(` Success: ${firstScenario.successCriteria}`);
228
+ }
229
+ if (firstScenario?.failureCriteria) {
230
+ console.log(` Failure: ${firstScenario.failureCriteria}`);
231
+ }
232
+ if (firstScenario?.maxMessages) {
233
+ console.log(` Max Msgs: ${firstScenario.maxMessages}`);
234
+ }
235
+ console.log(` Scenarios: ${updated.scenarioIds?.length ?? 0}`);
236
+ console.log(` Updated: ${updated.updatedAt}`);
237
+ }
238
+ }
239
+ catch (error) {
240
+ if (error instanceof Error) {
241
+ console.error(`Error: ${error.message}`);
242
+ process.exit(1);
243
+ }
244
+ throw error;
245
+ }
246
+ }))
247
+ .addCommand(new Command("delete")
248
+ .description("Delete an eval")
249
+ .argument("<id>", "Eval ID")
250
+ .option("--json", "Output as JSON")
251
+ .action((id, options) => {
252
+ const existing = getEval(id);
253
+ if (!existing) {
254
+ console.error(`Error: Eval "${id}" not found`);
255
+ process.exit(1);
256
+ }
257
+ const displayName = getEvalDisplayName(existing);
258
+ const deleted = deleteEval(existing.id);
259
+ if (!deleted) {
260
+ console.error(`Error: Failed to delete eval`);
261
+ process.exit(1);
262
+ }
263
+ if (options.json) {
264
+ console.log(JSON.stringify({ deleted: true, id: existing.id }));
265
+ }
266
+ else {
267
+ console.log(`Eval "${displayName}" deleted successfully`);
268
+ }
269
+ }));
270
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const initCommand: Command;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,WAAW,SAuBpB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { initLocalProject } from "evalstudio";
3
+ export const initCommand = new Command("init")
4
+ .description("Initialize a new EvalStudio project directory")
5
+ .argument("<name>", "Name of the directory to create")
6
+ .option("--json", "Output as JSON")
7
+ .action((name, options) => {
8
+ try {
9
+ const result = initLocalProject(process.cwd(), name);
10
+ if (options.json) {
11
+ console.log(JSON.stringify(result, null, 2));
12
+ }
13
+ else {
14
+ console.log(`Initialized EvalStudio project in ${result.projectDir}`);
15
+ console.log();
16
+ console.log(` cd ${name}`);
17
+ console.log(` evalstudio project create --name "My Project"`);
18
+ }
19
+ }
20
+ catch (error) {
21
+ if (error instanceof Error) {
22
+ console.error(`Error: ${error.message}`);
23
+ process.exit(1);
24
+ }
25
+ throw error;
26
+ }
27
+ });
28
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,+CAA+C,CAAC;KAC5D,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;KACrD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const llmProviderCommand: Command;
3
+ //# sourceMappingURL=llm-provider.d.ts.map