@edgemodders/edgequest-mcp 0.1.0 → 0.1.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 (2) hide show
  1. package/dist/server.cjs +14 -3
  2. package/package.json +1 -1
package/dist/server.cjs CHANGED
@@ -34238,7 +34238,7 @@ function assignVoiceIds(text2, everyLine = false) {
34238
34238
  for (const p of choice.items) walk2((0, import_yaml2.isMap)(p.value) ? p.value.get("then", true) : p.value, visit);
34239
34239
  continue;
34240
34240
  }
34241
- if (it.has("voice") || everyLine && !it.has("set") && !it.has("go")) visit(it);
34241
+ if (it.has("voice") || everyLine && !it.has("set") && !it.has("go") && !it.has("sound")) visit(it);
34242
34242
  }
34243
34243
  };
34244
34244
  const lists = scenes.items.map((p) => (0, import_yaml2.isMap)(p.value) ? p.value.get("lines", true) : p.value);
@@ -34250,6 +34250,13 @@ function assignVoiceIds(text2, everyLine = false) {
34250
34250
  let added = 0;
34251
34251
  const give = (d) => (line) => {
34252
34252
  const v = line.get("voice", true);
34253
+ if (line.has("sound")) {
34254
+ if ((0, import_yaml2.isMap)(v) && v.items.length === 1 && v.has("id")) {
34255
+ line.delete("voice");
34256
+ added++;
34257
+ }
34258
+ return;
34259
+ }
34253
34260
  if ((0, import_yaml2.isMap)(v)) {
34254
34261
  if (v.has("id")) return;
34255
34262
  v.items.unshift(d.createPair("id", newId(used)));
@@ -34674,6 +34681,10 @@ function readStory(text2) {
34674
34681
  if (event) items.push({ kind: "sound", event });
34675
34682
  } else if (keys.filter((k) => k !== "voice").length === 1) {
34676
34683
  const speaker = keys.find((k) => k !== "voice");
34684
+ if (["sound", "set", "go", "choice"].includes(speaker)) {
34685
+ add(p, where, `A ${speaker}: item is not spoken, so it takes no voice:. Delete the voice: under it.`);
34686
+ return;
34687
+ }
34677
34688
  if (!speakers.has(speaker)) {
34678
34689
  add(p, where, `"${speaker}" cannot speak in this scene. Speakers here: ${[...speakers].join(", ")}.`);
34679
34690
  return;
@@ -36010,7 +36021,7 @@ var Source = {
36010
36021
  file: external_exports.string().optional().describe("Or a file on disk: the CR2W file, or its WolvenKit .json.")
36011
36022
  };
36012
36023
  var server = new McpServer(
36013
- { name: "edgequest", version: "0.1.0" },
36024
+ { name: "edgequest", version: "0.1.1" },
36014
36025
  {
36015
36026
  instructions: "EDGEquest reads Cyberpunk 2077's quests in plain words. Start with quest_find (by quest title, file name, fact, journal entry, person or place) to get a game path, then quest_describe for a quest or phase, and quest_scene for a dialogue scene's lines and choices. A quest is a .quest file whose phase nodes play .questphase files; phases nest, and a phase's scene nodes play .scene files. The game's own quests start from base\\quest\\cyberpunk2077.quest (the root) and ep1\\quest for Phantom Liberty."
36016
36027
  }
@@ -36404,7 +36415,7 @@ ${storySummary(file)}`);
36404
36415
  );
36405
36416
  async function main() {
36406
36417
  await server.connect(new StdioServerTransport());
36407
- log(`${"0.1.0"} ready (cache ${cacheDir})`);
36418
+ log(`${"0.1.1"} ready (cache ${cacheDir})`);
36408
36419
  const stop = () => {
36409
36420
  bridge?.stop();
36410
36421
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgemodders/edgequest-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "EDGEquest for AI assistants over MCP: read Cyberpunk 2077's quests in plain words, write new quests from a story file, and check a quest mod's files against each other.",
5
5
  "license": "MIT",
6
6
  "author": "Edgemodders",