@lightsage/mcp 0.4.19 → 0.4.20

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.
package/README.md CHANGED
@@ -33,9 +33,9 @@ Lightsage Public API: Public API for Lightsage CLI and external integrations.
33
33
  <details>
34
34
  <summary>Claude Desktop</summary>
35
35
 
36
- Install the MCP server as a Desktop Extension using the pre-built [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.19/mcp-server.mcpb) file:
36
+ Install the MCP server as a Desktop Extension using the pre-built [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.20/mcp-server.mcpb) file:
37
37
 
38
- Simply drag and drop the [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.19/mcp-server.mcpb) file onto Claude Desktop to install the extension.
38
+ Simply drag and drop the [`mcp-server.mcpb`](https://github.com/lightsagehq/mcp/releases/download/v0.4.20/mcp-server.mcpb) file onto Claude Desktop to install the extension.
39
39
 
40
40
  The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
41
41
 
package/bin/mcp-server.js CHANGED
@@ -26303,6 +26303,15 @@ var require_utils2 = __commonJS(function(exports, module) {
26303
26303
  }
26304
26304
  return max;
26305
26305
  };
26306
+ var countElements = function countElements(arr) {
26307
+ var count = 0;
26308
+ for (var i = 0;i < arr.length; ++i) {
26309
+ if (has.call(arr, i)) {
26310
+ count += 1;
26311
+ }
26312
+ }
26313
+ return count;
26314
+ };
26306
26315
  var limitedPair = function limitedPair(first, second, options) {
26307
26316
  var pair = [first, second];
26308
26317
  if (options && typeof options.arrayLimit === "number" && pair.length > options.arrayLimit) {
@@ -26320,7 +26329,7 @@ var require_utils2 = __commonJS(function(exports, module) {
26320
26329
  if (typeof source !== "object" && typeof source !== "function") {
26321
26330
  if (isArray(target)) {
26322
26331
  var nextIndex = target.length;
26323
- if (options && typeof options.arrayLimit === "number" && nextIndex >= options.arrayLimit) {
26332
+ if (options && typeof options.arrayLimit === "number" && countElements(target) >= options.arrayLimit) {
26324
26333
  if (options.throwOnLimitExceeded) {
26325
26334
  throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
26326
26335
  }
@@ -26389,7 +26398,7 @@ var require_utils2 = __commonJS(function(exports, module) {
26389
26398
  target[i] = item;
26390
26399
  }
26391
26400
  });
26392
- if (options && typeof options.arrayLimit === "number" && target.length > options.arrayLimit) {
26401
+ if (options && typeof options.arrayLimit === "number" && countElements(target) > options.arrayLimit) {
26393
26402
  if (options.throwOnLimitExceeded) {
26394
26403
  throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
26395
26404
  }
@@ -26883,6 +26892,7 @@ var require_parse = __commonJS(function(exports, module) {
26883
26892
  var has = Object.prototype.hasOwnProperty;
26884
26893
  var isArray = Array.isArray;
26885
26894
  var getPrototypeOf = Object.getPrototypeOf;
26895
+ var fromCharCode = String.fromCharCode;
26886
26896
  var isPlainContainer = function isPlainContainer(value) {
26887
26897
  if (!value || typeof value !== "object") {
26888
26898
  return false;
@@ -26951,7 +26961,12 @@ var require_parse = __commonJS(function(exports, module) {
26951
26961
  };
26952
26962
  var interpretNumericEntities = function(str) {
26953
26963
  return str.replace(/&#(\d+);/g, function($0, numberStr) {
26954
- return String.fromCharCode(parseInt(numberStr, 10));
26964
+ var c = parseInt(numberStr, 10);
26965
+ if (c > 65535 && c <= 1114111) {
26966
+ c -= 65536;
26967
+ return fromCharCode(55296 | c >> 10, 56320 | c & 1023);
26968
+ }
26969
+ return fromCharCode(c);
26955
26970
  });
26956
26971
  };
26957
26972
  var parseArrayValue = function(val, options, currentArrayLength) {
@@ -27044,6 +27059,9 @@ var require_parse = __commonJS(function(exports, module) {
27044
27059
  }
27045
27060
  return obj;
27046
27061
  };
27062
+ var stripWrappingBrackets = function stripWrappingBrackets(key) {
27063
+ return key.charAt(0) === "[" && key.charAt(key.length - 1) === "]" ? key.slice(1, -1) : key;
27064
+ };
27047
27065
  var parseObject = function(chain, val, options, valuesParsed) {
27048
27066
  var currentArrayLength = 0;
27049
27067
  if (chain.length > 0 && chain[chain.length - 1] === "[]") {
@@ -27062,12 +27080,12 @@ var require_parse = __commonJS(function(exports, module) {
27062
27080
  }
27063
27081
  } else {
27064
27082
  obj = options.plainObjects ? { __proto__: null } : {};
27065
- var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
27083
+ var cleanRoot = stripWrappingBrackets(root);
27066
27084
  var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/gi, ".") : cleanRoot;
27067
27085
  var index = parseInt(decodedRoot, 10);
27068
27086
  var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays;
27069
27087
  if (!options.parseArrays && decodedRoot === "") {
27070
- obj = { 0: leaf };
27088
+ obj[0] = leaf;
27071
27089
  } else if (isValidArrayIndex && index < options.arrayLimit) {
27072
27090
  obj = [];
27073
27091
  obj[index] = leaf;
@@ -27114,7 +27132,7 @@ var require_parse = __commonJS(function(exports, module) {
27114
27132
  var splitKeyIntoSegments = function splitKeyIntoSegments(originalKey, options) {
27115
27133
  var key = options.allowDots ? topLevelDotsToBrackets(originalKey) : originalKey;
27116
27134
  if (options.depth <= 0) {
27117
- if (!options.plainObjects && has.call(Object.prototype, key)) {
27135
+ if (!options.plainObjects && has.call(Object.prototype, stripWrappingBrackets(key))) {
27118
27136
  if (!options.allowPrototypes) {
27119
27137
  return;
27120
27138
  }
@@ -27401,10 +27419,11 @@ var require_encodeurl = __commonJS(function(exports, module) {
27401
27419
  */
27402
27420
  module.exports = encodeUrl;
27403
27421
  var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
27404
- var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
27405
- var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1�$2";
27422
+ var SURROGATE_REGEXP = /([\uD800-\uDBFF][\uDC00-\uDFFF])|[\uD800-\uDFFF]/g;
27406
27423
  function encodeUrl(url) {
27407
- return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
27424
+ return String(url).replace(SURROGATE_REGEXP, function(_, pair) {
27425
+ return pair || "�";
27426
+ }).replace(ENCODE_CHARS_REGEXP, encodeURI);
27408
27427
  }
27409
27428
  });
27410
27429
 
@@ -53728,9 +53747,9 @@ var init_config = __esm(() => {
53728
53747
  SDK_METADATA = {
53729
53748
  language: "typescript",
53730
53749
  openapiDocVersion: "1.0.0",
53731
- sdkVersion: "0.4.19",
53750
+ sdkVersion: "0.4.20",
53732
53751
  genVersion: "2.948.4",
53733
- userAgent: "speakeasy-sdk/mcp-typescript 0.4.19 2.948.4 1.0.0 @lightsage/mcp"
53752
+ userAgent: "speakeasy-sdk/mcp-typescript 0.4.20 2.948.4 1.0.0 @lightsage/mcp"
53734
53753
  };
53735
53754
  });
53736
53755
 
@@ -61862,8 +61881,10 @@ var init_v2listpromptsresponse = __esm(() => {
61862
61881
  init_zod();
61863
61882
  init_v2promptresponse();
61864
61883
  V2ListPromptsResponse$zodSchema = object({
61865
- count: int(),
61866
- data: array(V2PromptResponse$zodSchema)
61884
+ count: int().describe("Total prompts that match the filters, across every page."),
61885
+ data: array(V2PromptResponse$zodSchema),
61886
+ limit: int().nullable().optional().describe("Page size, or null when every prompt was returned."),
61887
+ offset: int().default(0)
61867
61888
  });
61868
61889
  });
61869
61890
 
@@ -61880,6 +61901,8 @@ var init_v2promptslistop = __esm(() => {
61880
61901
  ]);
61881
61902
  V2PromptsListRequest$zodSchema = object({
61882
61903
  include_archived: boolean2().default(false),
61904
+ limit: int().describe("Prompts per page. Omit to return every prompt.").optional(),
61905
+ offset: int().default(0).describe("Prompts to skip. Used with `limit`."),
61883
61906
  status: V2PromptsListStatus$zodSchema.optional(),
61884
61907
  topic_id: string2().describe("Optional prompt topic ID.").optional()
61885
61908
  });
@@ -61903,6 +61926,8 @@ async function $do44(client$, request, options) {
61903
61926
  const path$ = pathToFunc("/v2/prompts")();
61904
61927
  const query$ = encodeFormQuery({
61905
61928
  include_archived: payload$?.include_archived,
61929
+ limit: payload$?.limit,
61930
+ offset: payload$?.offset,
61906
61931
  status: payload$?.status,
61907
61932
  topic_id: payload$?.topic_id
61908
61933
  });
@@ -61980,7 +62005,7 @@ var init_promptsList2 = __esm(() => {
61980
62005
  name: "prompts-list",
61981
62006
  description: `List Prompts
61982
62007
 
61983
- Returns active and inactive prompts by default. Set \`include_archived\` to include archived prompts.`,
62008
+ Returns active and inactive prompts by default, newest first. Set \`include_archived\` to include archived prompts. Without \`limit\`, every matching prompt is returned in one response. Set \`limit\` to page through them: \`count\` is the total across every page, so request the next page with \`offset\` until \`offset + limit\` reaches \`count\`.`,
61984
62009
  annotations: {
61985
62010
  title: "",
61986
62011
  destructiveHint: false,
@@ -67035,7 +67060,7 @@ function createMCPServer(deps) {
67035
67060
  sizes: ["any"]
67036
67061
  }],
67037
67062
  name: "LightsageMcp",
67038
- version: "0.4.19"
67063
+ version: "0.4.20"
67039
67064
  });
67040
67065
  const getClient = deps.getSDK || (() => new LightsageMcpCore({
67041
67066
  security: deps.security,
@@ -67260,7 +67285,7 @@ Returns per-topic and per-prompt visibility metrics including recommendation sco
67260
67285
  },
67261
67286
  {
67262
67287
  name: "prompts-list",
67263
- description: "List Prompts\n\nReturns active and inactive prompts by default. Set `include_archived` to include archived prompts."
67288
+ description: "List Prompts\n\nReturns active and inactive prompts by default, newest first. Set `include_archived` to include archived prompts. Without `limit`, every matching prompt is returned in one response. Set `limit` to page through them: `count` is the total across every page, so request the next page with `offset` until `offset + limit` reaches `count`."
67264
67289
  },
67265
67290
  {
67266
67291
  name: "prompts-create",
@@ -68530,7 +68555,7 @@ http_headers = { "lightsage-api-key-auth" = "YOUR_LIGHTSAGE_API_KEY_AUTH" }`;
68530
68555
  <h1>Instructions</h1>
68531
68556
  <p>One-click installation for Claude Desktop users</p>
68532
68557
  <div class="instruction-item">
68533
- <a href="https://github.com/lightsagehq/mcp/releases/download/v0.4.19/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
68558
+ <a href="https://github.com/lightsagehq/mcp/releases/download/v0.4.20/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
68534
68559
  \uD83D\uDCE5 Download MCP Bundle
68535
68560
  </a>
68536
68561
  </div>
@@ -71430,7 +71455,7 @@ var routes = buildRouteMap({
71430
71455
  var app = buildApplication(routes, {
71431
71456
  name: "mcp",
71432
71457
  versionInfo: {
71433
- currentVersion: "0.4.19"
71458
+ currentVersion: "0.4.20"
71434
71459
  }
71435
71460
  });
71436
71461
  run(app, process3.argv.slice(2), buildContext(process3));
@@ -71438,5 +71463,5 @@ export {
71438
71463
  app
71439
71464
  };
71440
71465
 
71441
- //# debugId=DC66C97A4F0231D164756E2164756E21
71466
+ //# debugId=D2DE954636D1AFD064756E2164756E21
71442
71467
  //# sourceMappingURL=mcp-server.js.map