@lightsage/mcp 0.4.0 → 0.4.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 (169) hide show
  1. package/README.md +2 -2
  2. package/bin/mcp-server.js +1227 -235
  3. package/bin/mcp-server.js.map +32 -9
  4. package/esm/funcs/evalTemplatesV2EvalTemplatesCreate.d.ts +16 -0
  5. package/esm/funcs/evalTemplatesV2EvalTemplatesCreate.d.ts.map +1 -0
  6. package/esm/funcs/evalTemplatesV2EvalTemplatesCreate.js +83 -0
  7. package/esm/funcs/evalTemplatesV2EvalTemplatesCreate.js.map +1 -0
  8. package/esm/funcs/evalTemplatesV2EvalTemplatesDelete.d.ts +16 -0
  9. package/esm/funcs/evalTemplatesV2EvalTemplatesDelete.d.ts.map +1 -0
  10. package/esm/funcs/evalTemplatesV2EvalTemplatesDelete.js +88 -0
  11. package/esm/funcs/evalTemplatesV2EvalTemplatesDelete.js.map +1 -0
  12. package/esm/funcs/evalTemplatesV2EvalTemplatesList.d.ts +15 -0
  13. package/esm/funcs/evalTemplatesV2EvalTemplatesList.d.ts.map +1 -0
  14. package/esm/funcs/evalTemplatesV2EvalTemplatesList.js +72 -0
  15. package/esm/funcs/evalTemplatesV2EvalTemplatesList.js.map +1 -0
  16. package/esm/funcs/evalTemplatesV2EvalTemplatesRetrieve.d.ts +16 -0
  17. package/esm/funcs/evalTemplatesV2EvalTemplatesRetrieve.d.ts.map +1 -0
  18. package/esm/funcs/evalTemplatesV2EvalTemplatesRetrieve.js +88 -0
  19. package/esm/funcs/evalTemplatesV2EvalTemplatesRetrieve.js.map +1 -0
  20. package/esm/funcs/evalTemplatesV2EvalTemplatesUpdate.d.ts +16 -0
  21. package/esm/funcs/evalTemplatesV2EvalTemplatesUpdate.d.ts.map +1 -0
  22. package/esm/funcs/evalTemplatesV2EvalTemplatesUpdate.js +89 -0
  23. package/esm/funcs/evalTemplatesV2EvalTemplatesUpdate.js.map +1 -0
  24. package/esm/funcs/evalsV2EvalsBatchCreate.d.ts +16 -0
  25. package/esm/funcs/evalsV2EvalsBatchCreate.d.ts.map +1 -0
  26. package/esm/funcs/evalsV2EvalsBatchCreate.js +83 -0
  27. package/esm/funcs/evalsV2EvalsBatchCreate.js.map +1 -0
  28. package/esm/landing-page.js +1 -1
  29. package/esm/lib/config.d.ts +2 -2
  30. package/esm/lib/config.js +2 -2
  31. package/esm/mcp-server/mcp-server.js +1 -1
  32. package/esm/mcp-server/server.d.ts.map +1 -1
  33. package/esm/mcp-server/server.js +13 -1
  34. package/esm/mcp-server/server.js.map +1 -1
  35. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesCreate.d.ts +7 -0
  36. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesCreate.d.ts.map +1 -0
  37. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesCreate.js +35 -0
  38. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesCreate.js.map +1 -0
  39. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesDelete.d.ts +7 -0
  40. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesDelete.d.ts.map +1 -0
  41. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesDelete.js +35 -0
  42. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesDelete.js.map +1 -0
  43. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesList.d.ts +3 -0
  44. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesList.d.ts.map +1 -0
  45. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesList.js +30 -0
  46. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesList.js.map +1 -0
  47. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesRetrieve.d.ts +7 -0
  48. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesRetrieve.d.ts.map +1 -0
  49. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesRetrieve.js +35 -0
  50. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesRetrieve.js.map +1 -0
  51. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesUpdate.d.ts +7 -0
  52. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesUpdate.d.ts.map +1 -0
  53. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesUpdate.js +35 -0
  54. package/esm/mcp-server/tools/evalTemplatesV2EvalTemplatesUpdate.js.map +1 -0
  55. package/esm/mcp-server/tools/evalsV2EvalsBatchCreate.d.ts +7 -0
  56. package/esm/mcp-server/tools/evalsV2EvalsBatchCreate.d.ts.map +1 -0
  57. package/esm/mcp-server/tools/evalsV2EvalsBatchCreate.js +35 -0
  58. package/esm/mcp-server/tools/evalsV2EvalsBatchCreate.js.map +1 -0
  59. package/esm/models/createevaltemplatebatchrequest.d.ts +12 -0
  60. package/esm/models/createevaltemplatebatchrequest.d.ts.map +1 -0
  61. package/esm/models/createevaltemplatebatchrequest.js +12 -0
  62. package/esm/models/createevaltemplatebatchrequest.js.map +1 -0
  63. package/esm/models/createevaltemplaterequest.d.ts +79 -0
  64. package/esm/models/createevaltemplaterequest.d.ts.map +1 -0
  65. package/esm/models/createevaltemplaterequest.js +74 -0
  66. package/esm/models/createevaltemplaterequest.js.map +1 -0
  67. package/esm/models/evaltemplate.d.ts +83 -0
  68. package/esm/models/evaltemplate.d.ts.map +1 -0
  69. package/esm/models/evaltemplate.js +81 -0
  70. package/esm/models/evaltemplate.js.map +1 -0
  71. package/esm/models/evaltemplatebatchcreatedeval.d.ts +11 -0
  72. package/esm/models/evaltemplatebatchcreatedeval.d.ts.map +1 -0
  73. package/esm/models/evaltemplatebatchcreatedeval.js +14 -0
  74. package/esm/models/evaltemplatebatchcreatedeval.js.map +1 -0
  75. package/esm/models/evaltemplatebatchitem.d.ts +32 -0
  76. package/esm/models/evaltemplatebatchitem.d.ts.map +1 -0
  77. package/esm/models/evaltemplatebatchitem.js +27 -0
  78. package/esm/models/evaltemplatebatchitem.js.map +1 -0
  79. package/esm/models/evaltemplatebatchresponse.d.ts +12 -0
  80. package/esm/models/evaltemplatebatchresponse.d.ts.map +1 -0
  81. package/esm/models/evaltemplatebatchresponse.js +15 -0
  82. package/esm/models/evaltemplatebatchresponse.js.map +1 -0
  83. package/esm/models/evaltemplatebatchresult.d.ts +10 -0
  84. package/esm/models/evaltemplatebatchresult.d.ts.map +1 -0
  85. package/esm/models/evaltemplatebatchresult.js +13 -0
  86. package/esm/models/evaltemplatebatchresult.js.map +1 -0
  87. package/esm/models/evaltemplateruntime.d.ts +20 -0
  88. package/esm/models/evaltemplateruntime.d.ts.map +1 -0
  89. package/esm/models/evaltemplateruntime.js +21 -0
  90. package/esm/models/evaltemplateruntime.js.map +1 -0
  91. package/esm/models/evaltemplateschedule.d.ts +28 -0
  92. package/esm/models/evaltemplateschedule.d.ts.map +1 -0
  93. package/esm/models/evaltemplateschedule.js +24 -0
  94. package/esm/models/evaltemplateschedule.js.map +1 -0
  95. package/esm/models/evaltemplatesresponse.d.ts +8 -0
  96. package/esm/models/evaltemplatesresponse.d.ts.map +1 -0
  97. package/esm/models/evaltemplatesresponse.js +11 -0
  98. package/esm/models/evaltemplatesresponse.js.map +1 -0
  99. package/esm/models/graderdefinition.d.ts +14 -0
  100. package/esm/models/graderdefinition.d.ts.map +1 -0
  101. package/esm/models/graderdefinition.js +17 -0
  102. package/esm/models/graderdefinition.js.map +1 -0
  103. package/esm/models/updateevaltemplaterequest.d.ts +71 -0
  104. package/esm/models/updateevaltemplaterequest.d.ts.map +1 -0
  105. package/esm/models/updateevaltemplaterequest.js +71 -0
  106. package/esm/models/updateevaltemplaterequest.js.map +1 -0
  107. package/esm/models/v2evalsbatchcreateop.d.ts +27 -0
  108. package/esm/models/v2evalsbatchcreateop.d.ts.map +1 -0
  109. package/esm/models/v2evalsbatchcreateop.js +24 -0
  110. package/esm/models/v2evalsbatchcreateop.js.map +1 -0
  111. package/esm/models/v2evaltemplatescreateop.d.ts +13 -0
  112. package/esm/models/v2evaltemplatescreateop.d.ts.map +1 -0
  113. package/esm/models/v2evaltemplatescreateop.js +16 -0
  114. package/esm/models/v2evaltemplatescreateop.js.map +1 -0
  115. package/esm/models/v2evaltemplatesdeleteop.d.ts +24 -0
  116. package/esm/models/v2evaltemplatesdeleteop.d.ts.map +1 -0
  117. package/esm/models/v2evaltemplatesdeleteop.js +23 -0
  118. package/esm/models/v2evaltemplatesdeleteop.js.map +1 -0
  119. package/esm/models/v2evaltemplatesretrieveop.d.ts +17 -0
  120. package/esm/models/v2evaltemplatesretrieveop.d.ts.map +1 -0
  121. package/esm/models/v2evaltemplatesretrieveop.js +19 -0
  122. package/esm/models/v2evaltemplatesretrieveop.js.map +1 -0
  123. package/esm/models/v2evaltemplatesupdateop.d.ts +33 -0
  124. package/esm/models/v2evaltemplatesupdateop.d.ts.map +1 -0
  125. package/esm/models/v2evaltemplatesupdateop.js +29 -0
  126. package/esm/models/v2evaltemplatesupdateop.js.map +1 -0
  127. package/esm/models/v2inlinemcpdefinition.d.ts +4 -4
  128. package/esm/models/v2inlinemcpdefinition.d.ts.map +1 -1
  129. package/esm/models/v2inlinemcpdefinition.js +3 -3
  130. package/esm/models/v2inlinemcpdefinition.js.map +1 -1
  131. package/esm/tool-names.d.ts.map +1 -1
  132. package/esm/tool-names.js +24 -0
  133. package/esm/tool-names.js.map +1 -1
  134. package/package.json +1 -1
  135. package/src/funcs/evalTemplatesV2EvalTemplatesCreate.ts +145 -0
  136. package/src/funcs/evalTemplatesV2EvalTemplatesDelete.ts +153 -0
  137. package/src/funcs/evalTemplatesV2EvalTemplatesList.ts +124 -0
  138. package/src/funcs/evalTemplatesV2EvalTemplatesRetrieve.ts +153 -0
  139. package/src/funcs/evalTemplatesV2EvalTemplatesUpdate.ts +154 -0
  140. package/src/funcs/evalsV2EvalsBatchCreate.ts +145 -0
  141. package/src/landing-page.ts +1 -1
  142. package/src/lib/config.ts +2 -2
  143. package/src/mcp-server/mcp-server.ts +1 -1
  144. package/src/mcp-server/server.ts +13 -1
  145. package/src/mcp-server/tools/evalTemplatesV2EvalTemplatesCreate.ts +45 -0
  146. package/src/mcp-server/tools/evalTemplatesV2EvalTemplatesDelete.ts +45 -0
  147. package/src/mcp-server/tools/evalTemplatesV2EvalTemplatesList.ts +36 -0
  148. package/src/mcp-server/tools/evalTemplatesV2EvalTemplatesRetrieve.ts +45 -0
  149. package/src/mcp-server/tools/evalTemplatesV2EvalTemplatesUpdate.ts +45 -0
  150. package/src/mcp-server/tools/evalsV2EvalsBatchCreate.ts +43 -0
  151. package/src/models/createevaltemplatebatchrequest.ts +35 -0
  152. package/src/models/createevaltemplaterequest.ts +151 -0
  153. package/src/models/evaltemplate.ts +154 -0
  154. package/src/models/evaltemplatebatchcreatedeval.ts +26 -0
  155. package/src/models/evaltemplatebatchitem.ts +54 -0
  156. package/src/models/evaltemplatebatchresponse.ts +30 -0
  157. package/src/models/evaltemplatebatchresult.ts +26 -0
  158. package/src/models/evaltemplateruntime.ts +64 -0
  159. package/src/models/evaltemplateschedule.ts +44 -0
  160. package/src/models/evaltemplatesresponse.ts +18 -0
  161. package/src/models/graderdefinition.ts +34 -0
  162. package/src/models/updateevaltemplaterequest.ts +116 -0
  163. package/src/models/v2evalsbatchcreateop.ts +66 -0
  164. package/src/models/v2evaltemplatescreateop.ts +37 -0
  165. package/src/models/v2evaltemplatesdeleteop.ts +56 -0
  166. package/src/models/v2evaltemplatesretrieveop.ts +43 -0
  167. package/src/models/v2evaltemplatesupdateop.ts +79 -0
  168. package/src/models/v2inlinemcpdefinition.ts +7 -5
  169. package/src/tool-names.ts +24 -0
@@ -0,0 +1,154 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 554d4ce825d0
4
+ */
5
+
6
+ import { LightsageMcpCore } from "../core.js";
7
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
+ import {
23
+ V2EvalTemplatesUpdateRequest,
24
+ V2EvalTemplatesUpdateRequest$zodSchema,
25
+ } from "../models/v2evaltemplatesupdateop.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Update an Eval template
31
+ *
32
+ * @remarks
33
+ * Updates an Eval template. Supply `expected_template_version` to reject an edit based on stale data. Existing evals are never changed.
34
+ */
35
+ export function evalTemplatesV2EvalTemplatesUpdate(
36
+ client$: LightsageMcpCore,
37
+ request: V2EvalTemplatesUpdateRequest,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: LightsageMcpCore,
60
+ request: V2EvalTemplatesUpdateRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed$ = safeParse(
78
+ request,
79
+ (value$) => V2EvalTemplatesUpdateRequest$zodSchema.parse(value$),
80
+ "Input validation failed",
81
+ );
82
+ if (!parsed$.ok) {
83
+ return [parsed$, { status: "invalid" }];
84
+ }
85
+ const payload$ = parsed$.value;
86
+ const body$ = encodeJSON("body", payload$.body, { explode: true });
87
+
88
+ const pathParams$ = {
89
+ template_id: encodeSimple("template_id", payload$.template_id, {
90
+ explode: false,
91
+ charEncoding: "percent",
92
+ }),
93
+ };
94
+ const path$ = pathToFunc("/v2/eval-templates/{template_id}")(
95
+ pathParams$,
96
+ );
97
+
98
+ const headers$ = new Headers(compactMap({
99
+ "Content-Type": "application/json",
100
+ Accept: "application/json",
101
+ }));
102
+ const securityInput = await extractSecurity(client$._options.security);
103
+ const requestSecurity = resolveGlobalSecurity(securityInput);
104
+
105
+ const context = {
106
+ options: client$._options,
107
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
108
+ operationID: "v2_eval_templates_update",
109
+ oAuth2Scopes: null,
110
+ resolvedSecurity: requestSecurity,
111
+ securitySource: client$._options.security,
112
+ retryConfig: options?.retries
113
+ || client$._options.retryConfig
114
+ || { strategy: "none" },
115
+ retryCodes: options?.retryCodes || [
116
+ "429",
117
+ "500",
118
+ "502",
119
+ "503",
120
+ "504",
121
+ ],
122
+ };
123
+
124
+ const requestRes = client$._createRequest(context, {
125
+ security: requestSecurity,
126
+ method: "PATCH",
127
+ baseURL: options?.serverURL,
128
+ path: path$,
129
+ headers: headers$,
130
+ body: body$,
131
+ userAgent: client$._options.userAgent,
132
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
133
+ || -1,
134
+ }, options);
135
+ if (!requestRes.ok) {
136
+ return [requestRes, { status: "invalid" }];
137
+ }
138
+ const req$ = requestRes.value;
139
+
140
+ const doResult = await client$._do(req$, {
141
+ context,
142
+ errorCodes: [],
143
+ retryConfig: context.retryConfig,
144
+ retryCodes: context.retryCodes,
145
+ });
146
+ if (!doResult.ok) {
147
+ return [doResult, { status: "request-error", request: req$ }];
148
+ }
149
+ return [doResult, {
150
+ status: "complete",
151
+ "request": req$,
152
+ response: doResult.value,
153
+ }];
154
+ }
@@ -0,0 +1,145 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 602837e287ef
4
+ */
5
+
6
+ import { LightsageMcpCore } from "../core.js";
7
+ import { encodeJSON } from "../lib/encodings.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ CreateEvalTemplateBatchRequest,
15
+ CreateEvalTemplateBatchRequest$zodSchema,
16
+ } from "../models/createevaltemplatebatchrequest.js";
17
+ import { APIError } from "../models/errors/apierror.js";
18
+ import {
19
+ ConnectionError,
20
+ InvalidRequestError,
21
+ RequestAbortedError,
22
+ RequestTimeoutError,
23
+ UnexpectedClientError,
24
+ } from "../models/errors/httpclienterrors.js";
25
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Create evals from a template
31
+ *
32
+ * @remarks
33
+ * Step 2 of the reusable template workflow. Provide the `id` and `version` returned by `POST /v2/eval-templates` as `template_id` and `expected_template_version`, then provide only prompt-specific fields in `evals`. The template supplies only the settings named in its `included_components`; omitted settings keep the values supplied by the creation workflow or its defaults. Included values are copied at creation time, so later template changes do not alter the created evals. Competitor selections create one additional eval per selected competitor for every input item, and the response groups each base eval with those variants. Brand-scoped runtime resources are validated against the organization's primary brand before any eval is created.
34
+ */
35
+ export function evalsV2EvalsBatchCreate(
36
+ client$: LightsageMcpCore,
37
+ request: CreateEvalTemplateBatchRequest,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: LightsageMcpCore,
60
+ request: CreateEvalTemplateBatchRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed$ = safeParse(
78
+ request,
79
+ (value$) => CreateEvalTemplateBatchRequest$zodSchema.parse(value$),
80
+ "Input validation failed",
81
+ );
82
+ if (!parsed$.ok) {
83
+ return [parsed$, { status: "invalid" }];
84
+ }
85
+ const payload$ = parsed$.value;
86
+ const body$ = encodeJSON("body", payload$, { explode: true });
87
+ const path$ = pathToFunc("/v2/evals/batch")();
88
+
89
+ const headers$ = new Headers(compactMap({
90
+ "Content-Type": "application/json",
91
+ Accept: "application/json",
92
+ }));
93
+ const securityInput = await extractSecurity(client$._options.security);
94
+ const requestSecurity = resolveGlobalSecurity(securityInput);
95
+
96
+ const context = {
97
+ options: client$._options,
98
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
99
+ operationID: "v2_evals_batch_create",
100
+ oAuth2Scopes: null,
101
+ resolvedSecurity: requestSecurity,
102
+ securitySource: client$._options.security,
103
+ retryConfig: options?.retries
104
+ || client$._options.retryConfig
105
+ || { strategy: "none" },
106
+ retryCodes: options?.retryCodes || [
107
+ "429",
108
+ "500",
109
+ "502",
110
+ "503",
111
+ "504",
112
+ ],
113
+ };
114
+
115
+ const requestRes = client$._createRequest(context, {
116
+ security: requestSecurity,
117
+ method: "POST",
118
+ baseURL: options?.serverURL,
119
+ path: path$,
120
+ headers: headers$,
121
+ body: body$,
122
+ userAgent: client$._options.userAgent,
123
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
124
+ || -1,
125
+ }, options);
126
+ if (!requestRes.ok) {
127
+ return [requestRes, { status: "invalid" }];
128
+ }
129
+ const req$ = requestRes.value;
130
+
131
+ const doResult = await client$._do(req$, {
132
+ context,
133
+ errorCodes: [],
134
+ retryConfig: context.retryConfig,
135
+ retryCodes: context.retryCodes,
136
+ });
137
+ if (!doResult.ok) {
138
+ return [doResult, { status: "request-error", request: req$ }];
139
+ }
140
+ return [doResult, {
141
+ status: "complete",
142
+ "request": req$,
143
+ response: doResult.value,
144
+ }];
145
+ }
@@ -931,7 +931,7 @@ http_headers = { "lightsage-api-key-auth" = "YOUR_LIGHTSAGE_API_KEY_AUTH" }`;
931
931
  <h1>Instructions</h1>
932
932
  <p>One-click installation for Claude Desktop users</p>
933
933
  <div class="instruction-item">
934
- <a href="https://github.com/lightsagehq/mcp/releases/download/v0.4.0/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
934
+ <a href="https://github.com/lightsagehq/mcp/releases/download/v0.4.1/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
935
935
  📥 Download MCP Bundle
936
936
  </a>
937
937
  </div>
package/src/lib/config.ts CHANGED
@@ -66,7 +66,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
66
66
  export const SDK_METADATA = {
67
67
  language: "typescript",
68
68
  openapiDocVersion: "1.0.0",
69
- sdkVersion: "0.4.0",
69
+ sdkVersion: "0.4.1",
70
70
  genVersion: "2.941.0",
71
- userAgent: "speakeasy-sdk/mcp-typescript 0.4.0 2.941.0 1.0.0 @lightsage/mcp",
71
+ userAgent: "speakeasy-sdk/mcp-typescript 0.4.1 2.941.0 1.0.0 @lightsage/mcp",
72
72
  } as const;
@@ -22,7 +22,7 @@ const routes = buildRouteMap({
22
22
  export const app = buildApplication(routes, {
23
23
  name: "mcp",
24
24
  versionInfo: {
25
- currentVersion: "0.4.0",
25
+ currentVersion: "0.4.1",
26
26
  },
27
27
  });
28
28
 
@@ -34,11 +34,17 @@ import { tool$evalsV2EvalConfigurationsDelete } from "./tools/evalsV2EvalConfigu
34
34
  import { tool$evalsV2EvalConfigurationsList } from "./tools/evalsV2EvalConfigurationsList.js";
35
35
  import { tool$evalsV2EvalConfigurationsRetrieve } from "./tools/evalsV2EvalConfigurationsRetrieve.js";
36
36
  import { tool$evalsV2EvalConfigurationsUpdate } from "./tools/evalsV2EvalConfigurationsUpdate.js";
37
+ import { tool$evalsV2EvalsBatchCreate } from "./tools/evalsV2EvalsBatchCreate.js";
37
38
  import { tool$evalsV2EvalsCreate } from "./tools/evalsV2EvalsCreate.js";
38
39
  import { tool$evalsV2EvalsDelete } from "./tools/evalsV2EvalsDelete.js";
39
40
  import { tool$evalsV2EvalsList } from "./tools/evalsV2EvalsList.js";
40
41
  import { tool$evalsV2EvalsRetrieve } from "./tools/evalsV2EvalsRetrieve.js";
41
42
  import { tool$evalsV2EvalsUpdate } from "./tools/evalsV2EvalsUpdate.js";
43
+ import { tool$evalTemplatesV2EvalTemplatesCreate } from "./tools/evalTemplatesV2EvalTemplatesCreate.js";
44
+ import { tool$evalTemplatesV2EvalTemplatesDelete } from "./tools/evalTemplatesV2EvalTemplatesDelete.js";
45
+ import { tool$evalTemplatesV2EvalTemplatesList } from "./tools/evalTemplatesV2EvalTemplatesList.js";
46
+ import { tool$evalTemplatesV2EvalTemplatesRetrieve } from "./tools/evalTemplatesV2EvalTemplatesRetrieve.js";
47
+ import { tool$evalTemplatesV2EvalTemplatesUpdate } from "./tools/evalTemplatesV2EvalTemplatesUpdate.js";
42
48
  import { tool$mcpServersV2MCPServersList } from "./tools/mcpServersV2MCPServersList.js";
43
49
  import { tool$opportunitiesV2OpportunitiesList } from "./tools/opportunitiesV2OpportunitiesList.js";
44
50
  import { tool$opportunitiesV2OpportunitiesRetrieve } from "./tools/opportunitiesV2OpportunitiesRetrieve.js";
@@ -90,7 +96,7 @@ export function createMCPServer(deps: {
90
96
  sizes: ["any"],
91
97
  }],
92
98
  name: "LightsageMcp",
93
- version: "0.4.0",
99
+ version: "0.4.1",
94
100
  });
95
101
 
96
102
  const getClient = deps.getSDK || (() =>
@@ -164,6 +170,7 @@ export function createMCPServer(deps: {
164
170
  tool(tool$siteAuditsV2SiteAuditsRetrieve);
165
171
  tool(tool$evalsV2EvalsList);
166
172
  tool(tool$evalsV2EvalsCreate);
173
+ tool(tool$evalsV2EvalsBatchCreate);
167
174
  tool(tool$evalsV2EvalsRetrieve);
168
175
  tool(tool$evalsV2EvalsUpdate);
169
176
  tool(tool$evalsV2EvalsDelete);
@@ -176,6 +183,11 @@ export function createMCPServer(deps: {
176
183
  tool(tool$evalsCancel);
177
184
  tool(tool$evalsTrace);
178
185
  tool(tool$evalsGet);
186
+ tool(tool$evalTemplatesV2EvalTemplatesList);
187
+ tool(tool$evalTemplatesV2EvalTemplatesCreate);
188
+ tool(tool$evalTemplatesV2EvalTemplatesRetrieve);
189
+ tool(tool$evalTemplatesV2EvalTemplatesUpdate);
190
+ tool(tool$evalTemplatesV2EvalTemplatesDelete);
179
191
  tool(tool$evalRunsV2EvalRunsList);
180
192
  tool(tool$agentsV2AgentsList);
181
193
  tool(tool$repositoriesV2RepositoriesList);
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: f6d153b66c00
4
+ */
5
+
6
+ import { evalTemplatesV2EvalTemplatesCreate } from "../../funcs/evalTemplatesV2EvalTemplatesCreate.js";
7
+ import { CreateEvalTemplateRequest$zodSchema } from "../../models/createevaltemplaterequest.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: CreateEvalTemplateRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$evalTemplatesV2EvalTemplatesCreate: ToolDefinition<
15
+ typeof args
16
+ > = {
17
+ name: "eval-templates-v2-eval-templates-create",
18
+ description: `Create an Eval template
19
+
20
+ Step 1 of the reusable template workflow. Creates an organization-owned Eval template containing only the configuration components selected in \`included_components\`. Do not include task prompts in the template. The response returns the template \`id\` and \`version\`; pass them as \`template_id\` and \`expected_template_version\` to \`POST /v2/evals/batch\` with each eval's name and prompts. Applying a template copies its values into the new evals without creating a live link.`,
21
+ annotations: {
22
+ "title": "",
23
+ "destructiveHint": false,
24
+ "idempotentHint": false,
25
+ "openWorldHint": false,
26
+ "readOnlyHint": false,
27
+ },
28
+ args,
29
+ tool: async (client, args, ctx) => {
30
+ const [result] = await evalTemplatesV2EvalTemplatesCreate(
31
+ client,
32
+ args.request,
33
+ { fetchOptions: { signal: ctx.signal } },
34
+ ).$inspect();
35
+
36
+ if (!result.ok) {
37
+ return {
38
+ content: [{ type: "text", text: result.error.message }],
39
+ isError: true,
40
+ };
41
+ }
42
+
43
+ return formatResult(result.value);
44
+ },
45
+ };
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: bfa4338eff8a
4
+ */
5
+
6
+ import { evalTemplatesV2EvalTemplatesDelete } from "../../funcs/evalTemplatesV2EvalTemplatesDelete.js";
7
+ import { V2EvalTemplatesDeleteRequest$zodSchema } from "../../models/v2evaltemplatesdeleteop.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: V2EvalTemplatesDeleteRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$evalTemplatesV2EvalTemplatesDelete: ToolDefinition<
15
+ typeof args
16
+ > = {
17
+ name: "eval-templates-v2-eval-templates-delete",
18
+ description: `Delete an Eval template
19
+
20
+ Soft-deletes an Eval template. Evals previously created from it remain independent and continue to run with their copied configuration.`,
21
+ annotations: {
22
+ "title": "",
23
+ "destructiveHint": true,
24
+ "idempotentHint": false,
25
+ "openWorldHint": false,
26
+ "readOnlyHint": false,
27
+ },
28
+ args,
29
+ tool: async (client, args, ctx) => {
30
+ const [result] = await evalTemplatesV2EvalTemplatesDelete(
31
+ client,
32
+ args.request,
33
+ { fetchOptions: { signal: ctx.signal } },
34
+ ).$inspect();
35
+
36
+ if (!result.ok) {
37
+ return {
38
+ content: [{ type: "text", text: result.error.message }],
39
+ isError: true,
40
+ };
41
+ }
42
+
43
+ return formatResult(result.value);
44
+ },
45
+ };
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 8040bdb47e80
4
+ */
5
+
6
+ import { evalTemplatesV2EvalTemplatesList } from "../../funcs/evalTemplatesV2EvalTemplatesList.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ export const tool$evalTemplatesV2EvalTemplatesList: ToolDefinition = {
10
+ name: "eval-templates-v2-eval-templates-list",
11
+ description: `List Eval templates
12
+
13
+ Returns active reusable Eval templates owned by the authenticated organization. Templates contain reusable configuration and never task prompts.`,
14
+ annotations: {
15
+ "title": "",
16
+ "destructiveHint": false,
17
+ "idempotentHint": false,
18
+ "openWorldHint": false,
19
+ "readOnlyHint": true,
20
+ },
21
+ tool: async (client, ctx) => {
22
+ const [result] = await evalTemplatesV2EvalTemplatesList(
23
+ client,
24
+ { fetchOptions: { signal: ctx.signal } },
25
+ ).$inspect();
26
+
27
+ if (!result.ok) {
28
+ return {
29
+ content: [{ type: "text", text: result.error.message }],
30
+ isError: true,
31
+ };
32
+ }
33
+
34
+ return formatResult(result.value);
35
+ },
36
+ };
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: c0e5159c6665
4
+ */
5
+
6
+ import { evalTemplatesV2EvalTemplatesRetrieve } from "../../funcs/evalTemplatesV2EvalTemplatesRetrieve.js";
7
+ import { V2EvalTemplatesRetrieveRequest$zodSchema } from "../../models/v2evaltemplatesretrieveop.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: V2EvalTemplatesRetrieveRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$evalTemplatesV2EvalTemplatesRetrieve: ToolDefinition<
15
+ typeof args
16
+ > = {
17
+ name: "eval-templates-v2-eval-templates-retrieve",
18
+ description: `Retrieve an Eval template
19
+
20
+ Returns one active reusable Eval template.`,
21
+ annotations: {
22
+ "title": "",
23
+ "destructiveHint": false,
24
+ "idempotentHint": false,
25
+ "openWorldHint": false,
26
+ "readOnlyHint": true,
27
+ },
28
+ args,
29
+ tool: async (client, args, ctx) => {
30
+ const [result] = await evalTemplatesV2EvalTemplatesRetrieve(
31
+ client,
32
+ args.request,
33
+ { fetchOptions: { signal: ctx.signal } },
34
+ ).$inspect();
35
+
36
+ if (!result.ok) {
37
+ return {
38
+ content: [{ type: "text", text: result.error.message }],
39
+ isError: true,
40
+ };
41
+ }
42
+
43
+ return formatResult(result.value);
44
+ },
45
+ };
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 1f25df1eae88
4
+ */
5
+
6
+ import { evalTemplatesV2EvalTemplatesUpdate } from "../../funcs/evalTemplatesV2EvalTemplatesUpdate.js";
7
+ import { V2EvalTemplatesUpdateRequest$zodSchema } from "../../models/v2evaltemplatesupdateop.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: V2EvalTemplatesUpdateRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$evalTemplatesV2EvalTemplatesUpdate: ToolDefinition<
15
+ typeof args
16
+ > = {
17
+ name: "eval-templates-v2-eval-templates-update",
18
+ description: `Update an Eval template
19
+
20
+ Updates an Eval template. Supply \`expected_template_version\` to reject an edit based on stale data. Existing evals are never changed.`,
21
+ annotations: {
22
+ "title": "",
23
+ "destructiveHint": false,
24
+ "idempotentHint": false,
25
+ "openWorldHint": false,
26
+ "readOnlyHint": false,
27
+ },
28
+ args,
29
+ tool: async (client, args, ctx) => {
30
+ const [result] = await evalTemplatesV2EvalTemplatesUpdate(
31
+ client,
32
+ args.request,
33
+ { fetchOptions: { signal: ctx.signal } },
34
+ ).$inspect();
35
+
36
+ if (!result.ok) {
37
+ return {
38
+ content: [{ type: "text", text: result.error.message }],
39
+ isError: true,
40
+ };
41
+ }
42
+
43
+ return formatResult(result.value);
44
+ },
45
+ };
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 18f4c7ff36d5
4
+ */
5
+
6
+ import { evalsV2EvalsBatchCreate } from "../../funcs/evalsV2EvalsBatchCreate.js";
7
+ import { CreateEvalTemplateBatchRequest$zodSchema } from "../../models/createevaltemplatebatchrequest.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: CreateEvalTemplateBatchRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$evalsV2EvalsBatchCreate: ToolDefinition<typeof args> = {
15
+ name: "evals-v2-evals-batch-create",
16
+ description: `Create evals from a template
17
+
18
+ Step 2 of the reusable template workflow. Provide the \`id\` and \`version\` returned by \`POST /v2/eval-templates\` as \`template_id\` and \`expected_template_version\`, then provide only prompt-specific fields in \`evals\`. The template supplies only the settings named in its \`included_components\`; omitted settings keep the values supplied by the creation workflow or its defaults. Included values are copied at creation time, so later template changes do not alter the created evals. Competitor selections create one additional eval per selected competitor for every input item, and the response groups each base eval with those variants. Brand-scoped runtime resources are validated against the organization's primary brand before any eval is created.`,
19
+ annotations: {
20
+ "title": "",
21
+ "destructiveHint": false,
22
+ "idempotentHint": false,
23
+ "openWorldHint": false,
24
+ "readOnlyHint": false,
25
+ },
26
+ args,
27
+ tool: async (client, args, ctx) => {
28
+ const [result] = await evalsV2EvalsBatchCreate(
29
+ client,
30
+ args.request,
31
+ { fetchOptions: { signal: ctx.signal } },
32
+ ).$inspect();
33
+
34
+ if (!result.ok) {
35
+ return {
36
+ content: [{ type: "text", text: result.error.message }],
37
+ isError: true,
38
+ };
39
+ }
40
+
41
+ return formatResult(result.value);
42
+ },
43
+ };
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 6c3f16ae5afb
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import {
8
+ EvalTemplateBatchItem,
9
+ EvalTemplateBatchItem$zodSchema,
10
+ } from "./evaltemplatebatchitem.js";
11
+
12
+ /**
13
+ * Reuse one template across up to 100 prompt-specific eval definitions.
14
+ */
15
+ export type CreateEvalTemplateBatchRequest = {
16
+ template_id: string;
17
+ expected_template_version?: number | undefined;
18
+ evals: Array<EvalTemplateBatchItem>;
19
+ };
20
+
21
+ export const CreateEvalTemplateBatchRequest$zodSchema: z.ZodType<
22
+ CreateEvalTemplateBatchRequest
23
+ > = z.object({
24
+ evals: z.array(EvalTemplateBatchItem$zodSchema).describe(
25
+ "Prompt-specific evals to create from the referenced template. Template-owned fields are intentionally rejected here to avoid ambiguous overrides.",
26
+ ),
27
+ expected_template_version: z.int().optional().describe(
28
+ "Template `version` returned when the template was read or created. When supplied, creation fails if the template changed before reuse.",
29
+ ),
30
+ template_id: z.string().describe(
31
+ "Template `id` returned by `POST /v2/eval-templates`.",
32
+ ),
33
+ }).describe(
34
+ "Reuse one template across up to 100 prompt-specific eval definitions.",
35
+ );