@puzzmo/cli 1.0.26 → 1.0.27

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.
@@ -69,8 +69,8 @@ const setupNewRepo = (gameDir) => {
69
69
  gitCommit("Initial game import", { cwd: gameDir });
70
70
  }
71
71
  };
72
- /** Sets up the game inside an existing monorepo */
73
- const setupMonorepoGame = (tmpDir, slug, repoRoot, parentFolder) => {
72
+ /** Places a game inside an existing repo's parent folder (games/, packages/, etc.) */
73
+ const setupRepoGame = (tmpDir, slug, repoRoot, parentFolder) => {
74
74
  const parentDir = path.join(repoRoot, parentFolder);
75
75
  if (!fs.existsSync(parentDir))
76
76
  fs.mkdirSync(parentDir, { recursive: true });
@@ -86,6 +86,58 @@ const setupMonorepoGame = (tmpDir, slug, repoRoot, parentFolder) => {
86
86
  gitCommit(`New game: ${slug}`, { cwd: repoRoot });
87
87
  return gameDir;
88
88
  };
89
+ /** Files/dirs that stay at the repo root during a standalone→multi-game conversion */
90
+ const rootKeepList = new Set([
91
+ ".git",
92
+ ".gitignore",
93
+ ".mcp.json",
94
+ "node_modules",
95
+ "dist",
96
+ ".puzzmo",
97
+ ".DS_Store",
98
+ "package.json",
99
+ "package-lock.json",
100
+ "yarn.lock",
101
+ "pnpm-lock.yaml",
102
+ ".yarnrc.yml",
103
+ ".yarn",
104
+ ".pnp.cjs",
105
+ ".pnp.loader.mjs",
106
+ "tsconfig.json",
107
+ "vite.config.ts",
108
+ "vite.config.js",
109
+ ".prettierrc",
110
+ ".prettierrc.json",
111
+ "prettier.config.js",
112
+ ".eslintrc",
113
+ ".eslintrc.json",
114
+ "eslint.config.js",
115
+ ]);
116
+ /** Converts a standalone single-game repo into a multi-game repo by moving existing files into games/<name>/ */
117
+ const convertToMultiGame = (repoRoot) => {
118
+ // Derive existing game name from package.json or directory name
119
+ let existingName;
120
+ try {
121
+ const pkg = JSON.parse(fs.readFileSync(path.join(repoRoot, "package.json"), "utf-8"));
122
+ if (pkg.name)
123
+ existingName = slugify(pkg.name);
124
+ }
125
+ catch { }
126
+ if (!existingName)
127
+ existingName = path.basename(repoRoot);
128
+ const gamesDir = path.join(repoRoot, "games");
129
+ const existingGameDir = path.join(gamesDir, existingName);
130
+ fs.mkdirSync(existingGameDir, { recursive: true });
131
+ // Move all non-root files into games/<existing>/
132
+ for (const entry of fs.readdirSync(repoRoot)) {
133
+ if (rootKeepList.has(entry) || entry === "games")
134
+ continue;
135
+ fs.renameSync(path.join(repoRoot, entry), path.join(existingGameDir, entry));
136
+ }
137
+ runCommand("git add -A", { cwd: repoRoot });
138
+ gitCommit(`Restructure: move existing game to games/${existingName}`, { cwd: repoRoot });
139
+ return existingName;
140
+ };
89
141
  /** Main game create wizard */
90
142
  export const gameCreate = async (args) => {
91
143
  const opts = parseArgs(args);
@@ -94,12 +146,12 @@ export const gameCreate = async (args) => {
94
146
  p.intro(`Puzzmo Game Creator v${version}`);
95
147
  // Step 1: Detect repo context and choose mode
96
148
  const repo = detectRepoContext();
97
- const isMonorepo = repo.inGitRepo && repo.hasWorkspaces && repo.workspaceFolders.length > 0;
149
+ const canAddToRepo = repo.repoType === "multi-game" || repo.repoType === "workspace-monorepo" || repo.repoType === "standalone";
98
150
  const modeOptions = [
99
151
  { value: "new-repo", label: "Create game in a new repo" },
100
- { value: "add-to-repo", label: "Add a game to this repo" },
152
+ ...(canAddToRepo ? [{ value: "add-to-repo", label: "Add a game to this repo" }] : []),
101
153
  ];
102
- if (isMonorepo)
154
+ if (canAddToRepo && repo.repoType !== "none")
103
155
  modeOptions.reverse();
104
156
  const mode = await p.select({
105
157
  message: "How would you like to create your game?",
@@ -137,41 +189,54 @@ export const gameCreate = async (args) => {
137
189
  p.log.step("Logging in...");
138
190
  login(opts.accessToken);
139
191
  }
140
- // Step 6: Diamond — set up repo or monorepo subdir
192
+ // Step 6: Diamond — set up repo or add to existing
141
193
  let gameDir;
194
+ let repoType = repo.repoType;
142
195
  if (mode === "new-repo") {
143
196
  gameDir = path.resolve(slug);
144
197
  if (fs.existsSync(gameDir))
145
198
  fs.rmSync(gameDir, { recursive: true });
146
199
  fs.renameSync(tmpDir, gameDir);
147
200
  setupNewRepo(gameDir);
201
+ repoType = "standalone";
148
202
  }
149
203
  else {
150
204
  if (!repo.repoRoot) {
151
205
  p.log.error("Could not detect repository root. Are you inside a git repo?");
152
206
  process.exit(1);
153
207
  }
154
- // Determine which workspace folder to place the game in
155
- let parentFolder;
156
- const hasGames = repo.workspaceFolders.includes("games");
157
- if (hasGames) {
158
- parentFolder = "games";
208
+ // Standalone repo convert to multi-game first
209
+ if (repo.repoType === "standalone") {
210
+ const existingGame = convertToMultiGame(repo.repoRoot);
211
+ p.log.step(`Moved existing game to games/${existingGame}/`);
212
+ repoType = "multi-game";
159
213
  }
160
- else if (repo.workspaceFolders.length === 0) {
214
+ // Determine which folder to place the game in
215
+ let parentFolder;
216
+ if (repoType === "multi-game") {
161
217
  parentFolder = "games";
162
218
  }
163
- else if (repo.workspaceFolders.length === 1) {
164
- parentFolder = repo.workspaceFolders[0];
165
- }
166
219
  else {
167
- parentFolder = (await p.select({
168
- message: "Which folder should the game be added to?",
169
- options: repo.workspaceFolders.map((f) => ({ value: f, label: f })),
170
- }));
171
- if (p.isCancel(parentFolder))
172
- process.exit(0);
220
+ const hasGames = repo.workspaceFolders.includes("games");
221
+ if (hasGames) {
222
+ parentFolder = "games";
223
+ }
224
+ else if (repo.workspaceFolders.length === 1) {
225
+ parentFolder = repo.workspaceFolders[0];
226
+ }
227
+ else if (repo.workspaceFolders.length === 0) {
228
+ parentFolder = "games";
229
+ }
230
+ else {
231
+ parentFolder = (await p.select({
232
+ message: "Which folder should the game be added to?",
233
+ options: repo.workspaceFolders.map((f) => ({ value: f, label: f })),
234
+ }));
235
+ if (p.isCancel(parentFolder))
236
+ process.exit(0);
237
+ }
173
238
  }
174
- gameDir = setupMonorepoGame(tmpDir, slug, repo.repoRoot, parentFolder);
239
+ gameDir = setupRepoGame(tmpDir, slug, repo.repoRoot, parentFolder);
175
240
  }
176
241
  // Step 7: Detect agent and run skills pipeline
177
242
  const agents = detectAgent();
@@ -193,11 +258,19 @@ export const gameCreate = async (args) => {
193
258
  selectedAgent = "none";
194
259
  }
195
260
  if (selectedAgent !== "none") {
261
+ const repoContextLines = [
262
+ `Repo type: ${repoType}`,
263
+ `Package manager: ${repo.packageManager} (use this instead of npm/npx when running commands or adding dependencies)`,
264
+ ];
265
+ if (repoType === "multi-game")
266
+ repoContextLines.push("This is a multi-game repo with a shared root package.json. Do not create a per-game package.json or vite config.");
267
+ if (repoType === "workspace-monorepo")
268
+ repoContextLines.push("This is a workspace monorepo. The game has its own package.json.");
196
269
  p.log.step("Running Puzzmo migration pipeline...");
197
- await runSkillsPipelineTUI(selectedAgent, gameDir);
270
+ await runSkillsPipelineTUI(selectedAgent, gameDir, repoContextLines.join("\n"));
198
271
  }
199
272
  // Done
200
- const pm = opts.pm || "npm";
273
+ const pm = opts.pm || repo.packageManager;
201
274
  const runCmd = pm === "npm" ? "npx" : pm === "yarn" ? "yarn dlx" : "pnpm dlx";
202
275
  const relativePath = path.relative(process.cwd(), gameDir);
203
276
  p.note([`cd ${relativePath}`, `${runCmd} vite # Start development server`, `${runCmd} vite build # Build for production`].join("\n"), "Next steps");
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/game/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/game/create.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,22 @@
1
+ /** The type of repo we're in */
2
+ export type RepoType =
3
+ /** Not in a git repo */
4
+ "none"
5
+ /** A standalone single-game repo (has package.json, no workspaces, no games/ dir) */
6
+ | "standalone"
7
+ /** A multi-game repo with a shared root package.json (has games/ dir, no workspaces) */
8
+ | "multi-game"
9
+ /** A monorepo with workspace-managed packages */
10
+ | "workspace-monorepo";
11
+ export type PackageManager = "npm" | "yarn" | "pnpm";
1
12
  export type RepoContext = {
2
13
  inGitRepo: boolean;
3
14
  repoRoot: string | null;
4
- hasWorkspaces: boolean;
15
+ repoType: RepoType;
5
16
  /** Top-level workspace folders derived from globs (e.g. ["apps", "packages", "games"]) */
6
17
  workspaceFolders: string[];
18
+ /** Detected package manager based on lockfiles and packageManager field */
19
+ packageManager: PackageManager;
7
20
  };
8
- /** Detects whether we're inside a git repo and if it's a monorepo with workspace folders */
21
+ /** Detects the repo type, root, workspace folders, and package manager */
9
22
  export declare const detectRepoContext: () => RepoContext;
@@ -59,7 +59,25 @@ const readPnpmWorkspaces = (repoRoot) => {
59
59
  }
60
60
  return null;
61
61
  };
62
- /** Detects whether we're inside a git repo and if it's a monorepo with workspace folders */
62
+ /** Detects package manager from lock files and the packageManager field */
63
+ const detectPackageManager = (repoRoot) => {
64
+ if (fs.existsSync(path.join(repoRoot, "yarn.lock")))
65
+ return "yarn";
66
+ if (fs.existsSync(path.join(repoRoot, "pnpm-lock.yaml")))
67
+ return "pnpm";
68
+ try {
69
+ const pkg = JSON.parse(fs.readFileSync(path.join(repoRoot, "package.json"), "utf-8"));
70
+ if (typeof pkg.packageManager === "string") {
71
+ if (pkg.packageManager.startsWith("yarn"))
72
+ return "yarn";
73
+ if (pkg.packageManager.startsWith("pnpm"))
74
+ return "pnpm";
75
+ }
76
+ }
77
+ catch { }
78
+ return "npm";
79
+ };
80
+ /** Detects the repo type, root, workspace folders, and package manager */
63
81
  export const detectRepoContext = () => {
64
82
  let repoRoot = null;
65
83
  try {
@@ -67,14 +85,20 @@ export const detectRepoContext = () => {
67
85
  repoRoot = result.trim();
68
86
  }
69
87
  catch {
70
- return { inGitRepo: false, repoRoot: null, hasWorkspaces: false, workspaceFolders: [] };
88
+ return { inGitRepo: false, repoRoot: null, repoType: "none", workspaceFolders: [], packageManager: "npm" };
71
89
  }
90
+ const pm = detectPackageManager(repoRoot);
72
91
  const globs = readPackageJsonWorkspaces(repoRoot) ?? readPnpmWorkspaces(repoRoot);
73
- const hasWorkspaces = globs !== null;
74
- const workspaceFolders = globs ? foldersFromGlobs(globs) : [];
75
- // Also recognize a games/ directory even without formal workspaces config
76
- if (!workspaceFolders.includes("games") && fs.existsSync(path.join(repoRoot, "games")))
77
- workspaceFolders.push("games");
78
- return { inGitRepo: true, repoRoot, hasWorkspaces: hasWorkspaces || workspaceFolders.length > 0, workspaceFolders };
92
+ if (globs) {
93
+ const workspaceFolders = foldersFromGlobs(globs);
94
+ // Also recognize a games/ directory even if not in workspace globs
95
+ if (!workspaceFolders.includes("games") && fs.existsSync(path.join(repoRoot, "games")))
96
+ workspaceFolders.push("games");
97
+ return { inGitRepo: true, repoRoot, repoType: "workspace-monorepo", workspaceFolders, packageManager: pm };
98
+ }
99
+ const hasGamesDir = fs.existsSync(path.join(repoRoot, "games"));
100
+ if (hasGamesDir)
101
+ return { inGitRepo: true, repoRoot, repoType: "multi-game", workspaceFolders: ["games"], packageManager: pm };
102
+ return { inGitRepo: true, repoRoot, repoType: "standalone", workspaceFolders: [], packageManager: pm };
79
103
  };
80
104
  //# sourceMappingURL=detectRepo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detectRepo.js","sourceRoot":"","sources":["../../../src/commands/game/detectRepo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detectRepo.js","sourceRoot":"","sources":["../../../src/commands/game/detectRepo.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /** Runs the skills pipeline with plain console output (no TUI) */
2
- export declare const runSkillsPipeline: (agent: string, gameDir: string) => Promise<void>;
2
+ export declare const runSkillsPipeline: (agent: string, gameDir: string, repoContext: string) => Promise<void>;
3
3
  /** Runs the skills pipeline with a split-pane TUI */
4
- export declare const runSkillsPipelineTUI: (agent: string, gameDir: string) => Promise<void>;
4
+ export declare const runSkillsPipelineTUI: (agent: string, gameDir: string, repoContext: string) => Promise<void>;
@@ -4,9 +4,9 @@ import { verifyBuild, runCommand, gitCommit } from "../util/exec.js";
4
4
  import { fetchSkillPrompt } from "./mcp-client.js";
5
5
  import { runPipelineTUI } from "../tui/pipeline.js";
6
6
  /** Fetches step instructions from the MCP server and wraps them as an agent prompt */
7
- const buildPrompt = async (stepName, gameDir) => {
7
+ const buildPrompt = async (stepName, gameDir, repoContext) => {
8
8
  const instructions = await fetchSkillPrompt(stepName, gameDir);
9
- return `Follow these instructions. The game source is in the current directory.\n\n${instructions}`;
9
+ return `Follow these instructions. The game source is in the current directory.\n\n${repoContext}\n\n${instructions}`;
10
10
  };
11
11
  /** Invokes an LLM agent with a prompt (plain mode, stdio inherited) */
12
12
  const invokeAgent = (agent, prompt, cwd) => {
@@ -26,13 +26,13 @@ const invokeAgent = (agent, prompt, cwd) => {
26
26
  };
27
27
  };
28
28
  /** Runs the skills pipeline with plain console output (no TUI) */
29
- export const runSkillsPipeline = async (agent, gameDir) => {
29
+ export const runSkillsPipeline = async (agent, gameDir, repoContext) => {
30
30
  const total = skillsPipeline.length;
31
31
  for (let i = 0; i < total; i++) {
32
32
  const skill = skillsPipeline[i];
33
33
  const step = i + 1;
34
34
  console.log(`[${step}/${total}] Running step: ${skill.name}`);
35
- const prompt = await buildPrompt(skill.name, gameDir);
35
+ const prompt = await buildPrompt(skill.name, gameDir, repoContext);
36
36
  let result = invokeAgent(agent, prompt, gameDir);
37
37
  if (!result.success) {
38
38
  console.log(` Agent failed, retrying...`);
@@ -67,7 +67,7 @@ export const runSkillsPipeline = async (agent, gameDir) => {
67
67
  console.log(`\nAll skills completed!`);
68
68
  };
69
69
  /** Runs the skills pipeline with a split-pane TUI */
70
- export const runSkillsPipelineTUI = async (agent, gameDir) => {
71
- await runPipelineTUI(agent, gameDir);
70
+ export const runSkillsPipelineTUI = async (agent, gameDir, repoContext) => {
71
+ await runPipelineTUI(agent, gameDir, repoContext);
72
72
  };
73
73
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/skills/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/skills/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,sFAAsF;AACtF,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,WAAmB,EAAmB,EAAE;IACpG,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC9D,OAAO,8EAA8E,WAAW,OAAO,YAAY,EAAE,CAAA;AACvH,CAAC,CAAA;AAED,uEAAuE;AACvE,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,GAAW,EAAwC,EAAE;IACvG,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC9B,OAAQ,GAA0C,CAAC,UAAU,CAAA;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE;QACxC,GAAG;QACH,GAAG;QACH,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM,EAAE,6BAA6B;KAC/C,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IAC5D,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;KACP,CAAA;AACH,CAAC,CAAA;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAa,EAAE,OAAe,EAAE,WAAmB,EAAE,EAAE;IAC7F,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAA;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAE7D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAClE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC1C,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,yCAAyC,CAAC,CAAA;gBAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,eAAe;QACf,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,0BAA0B,CAAC,CAAA;YACzE,MAAM,SAAS,GAAG,oCAAoC,KAAK,CAAC,IAAI,oCAAoC,WAAW,CAAC,KAAK,EAAE,CAAA;YACvH,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YAEtC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;YACvC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,SAAS;QACT,IAAI,CAAC;YACH,UAAU,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YAClD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,KAAa,EAAE,OAAe,EAAE,WAAmB,EAAE,EAAE;IAChG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -1,2 +1,2 @@
1
1
  /** Render the pipeline TUI and wait for it to complete */
2
- export declare const runPipelineTUI: (agent: string, gameDir: string) => Promise<void>;
2
+ export declare const runPipelineTUI: (agent: string, gameDir: string, repoContext: string) => Promise<void>;
@@ -49,13 +49,14 @@ const buildAgentCmd = (agent, prompt) => {
49
49
  return { cmd: agent, args: [prompt] };
50
50
  };
51
51
  /** Fetches step instructions from the MCP server and wraps them as an agent prompt */
52
- const buildPrompt = async (stepName, gameDir) => {
52
+ const buildPrompt = async (stepName, gameDir, repoContext) => {
53
53
  const instructions = await fetchSkillPrompt(stepName, gameDir);
54
- return `Follow these instructions. The game source is in the current directory.\n\n${instructions}`;
54
+ return `Follow these instructions. The game source is in the current directory.\n\n${repoContext}\n\n${instructions}`;
55
55
  };
56
56
  class PipelineTUI {
57
57
  agent;
58
58
  gameDir;
59
+ repoContext;
59
60
  states;
60
61
  currentStep = 0;
61
62
  outputLines = [];
@@ -65,9 +66,10 @@ class PipelineTUI {
65
66
  activeProc = null;
66
67
  sidebarWidth = 30;
67
68
  logsDir;
68
- constructor(agent, gameDir) {
69
+ constructor(agent, gameDir, repoContext) {
69
70
  this.agent = agent;
70
71
  this.gameDir = gameDir;
72
+ this.repoContext = repoContext;
71
73
  this.states = skillsPipeline.map(() => "pending");
72
74
  this.logsDir = path.join(gameDir, ".puzzmo", "logs");
73
75
  fs.mkdirSync(this.logsDir, { recursive: true });
@@ -377,7 +379,7 @@ class PipelineTUI {
377
379
  this.render();
378
380
  let prompt;
379
381
  try {
380
- prompt = await buildPrompt(skill.name, this.gameDir);
382
+ prompt = await buildPrompt(skill.name, this.gameDir, this.repoContext);
381
383
  }
382
384
  catch (e) {
383
385
  this.appendOutput(`Failed to fetch instructions: ${e.message}`);
@@ -478,8 +480,8 @@ class PipelineTUI {
478
480
  }
479
481
  }
480
482
  /** Render the pipeline TUI and wait for it to complete */
481
- export const runPipelineTUI = async (agent, gameDir) => {
482
- const tui = new PipelineTUI(agent, gameDir);
483
+ export const runPipelineTUI = async (agent, gameDir, repoContext) => {
484
+ const tui = new PipelineTUI(agent, gameDir, repoContext);
483
485
  await tui.run();
484
486
  };
485
487
  //# sourceMappingURL=pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/tui/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/tui/pipeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@puzzmo/cli",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "puzzmo": "./lib/index.js"
@@ -9,7 +9,7 @@ import { runCommand, gitCommit } from "../../util/exec.js"
9
9
  import { runSkillsPipelineTUI } from "../../skills/runner.js"
10
10
  import { login } from "../login.js"
11
11
  import { getToken } from "../../util/config.js"
12
- import { detectRepoContext } from "./detectRepo.js"
12
+ import { detectRepoContext, type RepoType } from "./detectRepo.js"
13
13
 
14
14
  type CreateOptions = {
15
15
  name?: string
@@ -83,8 +83,8 @@ const setupNewRepo = (gameDir: string) => {
83
83
  }
84
84
  }
85
85
 
86
- /** Sets up the game inside an existing monorepo */
87
- const setupMonorepoGame = (tmpDir: string, slug: string, repoRoot: string, parentFolder: string): string => {
86
+ /** Places a game inside an existing repo's parent folder (games/, packages/, etc.) */
87
+ const setupRepoGame = (tmpDir: string, slug: string, repoRoot: string, parentFolder: string): string => {
88
88
  const parentDir = path.join(repoRoot, parentFolder)
89
89
  if (!fs.existsSync(parentDir)) fs.mkdirSync(parentDir, { recursive: true })
90
90
 
@@ -102,6 +102,60 @@ const setupMonorepoGame = (tmpDir: string, slug: string, repoRoot: string, paren
102
102
  return gameDir
103
103
  }
104
104
 
105
+ /** Files/dirs that stay at the repo root during a standalone→multi-game conversion */
106
+ const rootKeepList = new Set([
107
+ ".git",
108
+ ".gitignore",
109
+ ".mcp.json",
110
+ "node_modules",
111
+ "dist",
112
+ ".puzzmo",
113
+ ".DS_Store",
114
+ "package.json",
115
+ "package-lock.json",
116
+ "yarn.lock",
117
+ "pnpm-lock.yaml",
118
+ ".yarnrc.yml",
119
+ ".yarn",
120
+ ".pnp.cjs",
121
+ ".pnp.loader.mjs",
122
+ "tsconfig.json",
123
+ "vite.config.ts",
124
+ "vite.config.js",
125
+ ".prettierrc",
126
+ ".prettierrc.json",
127
+ "prettier.config.js",
128
+ ".eslintrc",
129
+ ".eslintrc.json",
130
+ "eslint.config.js",
131
+ ])
132
+
133
+ /** Converts a standalone single-game repo into a multi-game repo by moving existing files into games/<name>/ */
134
+ const convertToMultiGame = (repoRoot: string): string => {
135
+ // Derive existing game name from package.json or directory name
136
+ let existingName: string | undefined
137
+ try {
138
+ const pkg = JSON.parse(fs.readFileSync(path.join(repoRoot, "package.json"), "utf-8"))
139
+ if (pkg.name) existingName = slugify(pkg.name)
140
+ } catch {}
141
+ if (!existingName) existingName = path.basename(repoRoot)
142
+
143
+ const gamesDir = path.join(repoRoot, "games")
144
+ const existingGameDir = path.join(gamesDir, existingName)
145
+ fs.mkdirSync(existingGameDir, { recursive: true })
146
+
147
+ // Move all non-root files into games/<existing>/
148
+ for (const entry of fs.readdirSync(repoRoot)) {
149
+ if (rootKeepList.has(entry) || entry === "games") continue
150
+ fs.renameSync(path.join(repoRoot, entry), path.join(existingGameDir, entry))
151
+ }
152
+
153
+ runCommand("git add -A", { cwd: repoRoot })
154
+ gitCommit(`Restructure: move existing game to games/${existingName}`, { cwd: repoRoot })
155
+
156
+ return existingName
157
+ }
158
+
105
159
  /** Main game create wizard */
106
160
  export const gameCreate = async (args: string[]) => {
107
161
  const opts = parseArgs(args)
@@ -112,13 +166,13 @@ export const gameCreate = async (args: string[]) => {
112
166
 
113
167
  // Step 1: Detect repo context and choose mode
114
168
  const repo = detectRepoContext()
115
- const isMonorepo = repo.inGitRepo && repo.hasWorkspaces && repo.workspaceFolders.length > 0
169
+ const canAddToRepo = repo.repoType === "multi-game" || repo.repoType === "workspace-monorepo" || repo.repoType === "standalone"
116
170
 
117
171
  const modeOptions = [
118
172
  { value: "new-repo" as const, label: "Create game in a new repo" },
119
- { value: "add-to-repo" as const, label: "Add a game to this repo" },
173
+ ...(canAddToRepo ? [{ value: "add-to-repo" as const, label: "Add a game to this repo" }] : []),
120
174
  ]
121
- if (isMonorepo) modeOptions.reverse()
175
+ if (canAddToRepo && repo.repoType !== "none") modeOptions.reverse()
122
176
 
123
177
  const mode = await p.select({
124
178
  message: "How would you like to create your game?",
@@ -159,39 +213,51 @@ export const gameCreate = async (args: string[]) => {
159
213
  login(opts.accessToken)
160
214
  }
161
215
 
162
- // Step 6: Diamond — set up repo or monorepo subdir
216
+ // Step 6: Diamond — set up repo or add to existing
163
217
  let gameDir: string
218
+ let repoType: RepoType = repo.repoType
164
219
 
165
220
  if (mode === "new-repo") {
166
221
  gameDir = path.resolve(slug)
167
222
  if (fs.existsSync(gameDir)) fs.rmSync(gameDir, { recursive: true })
168
223
  fs.renameSync(tmpDir, gameDir)
169
224
  setupNewRepo(gameDir)
225
+ repoType = "standalone"
170
226
  } else {
171
227
  if (!repo.repoRoot) {
172
228
  p.log.error("Could not detect repository root. Are you inside a git repo?")
173
229
  process.exit(1)
174
230
  }
175
231
 
176
- // Determine which workspace folder to place the game in
177
- let parentFolder: string
178
- const hasGames = repo.workspaceFolders.includes("games")
232
+ // Standalone repo convert to multi-game first
233
+ if (repo.repoType === "standalone") {
234
+ const existingGame = convertToMultiGame(repo.repoRoot)
235
+ p.log.step(`Moved existing game to games/${existingGame}/`)
236
+ repoType = "multi-game"
237
+ }
179
238
 
180
- if (hasGames) {
181
- parentFolder = "games"
182
- } else if (repo.workspaceFolders.length === 0) {
239
+ // Determine which folder to place the game in
240
+ let parentFolder: string
241
+ if (repoType === "multi-game") {
183
242
  parentFolder = "games"
184
- } else if (repo.workspaceFolders.length === 1) {
185
- parentFolder = repo.workspaceFolders[0]
186
243
  } else {
187
- parentFolder = (await p.select({
188
- message: "Which folder should the game be added to?",
189
- options: repo.workspaceFolders.map((f) => ({ value: f, label: f })),
190
- })) as string
191
- if (p.isCancel(parentFolder)) process.exit(0)
244
+ const hasGames = repo.workspaceFolders.includes("games")
245
+ if (hasGames) {
246
+ parentFolder = "games"
247
+ } else if (repo.workspaceFolders.length === 1) {
248
+ parentFolder = repo.workspaceFolders[0]
249
+ } else if (repo.workspaceFolders.length === 0) {
250
+ parentFolder = "games"
251
+ } else {
252
+ parentFolder = (await p.select({
253
+ message: "Which folder should the game be added to?",
254
+ options: repo.workspaceFolders.map((f) => ({ value: f, label: f })),
255
+ })) as string
256
+ if (p.isCancel(parentFolder)) process.exit(0)
257
+ }
192
258
  }
193
259
 
194
- gameDir = setupMonorepoGame(tmpDir, slug, repo.repoRoot, parentFolder)
260
+ gameDir = setupRepoGame(tmpDir, slug, repo.repoRoot, parentFolder)
195
261
  }
196
262
 
197
263
  // Step 7: Detect agent and run skills pipeline
@@ -213,12 +279,22 @@ export const gameCreate = async (args: string[]) => {
213
279
  }
214
280
 
215
281
  if (selectedAgent !== "none") {
282
+ const repoContextLines = [
283
+ `Repo type: ${repoType}`,
284
+ `Package manager: ${repo.packageManager} (use this instead of npm/npx when running commands or adding dependencies)`,
285
+ ]
286
+ if (repoType === "multi-game")
287
+ repoContextLines.push(
288
+ "This is a multi-game repo with a shared root package.json. Do not create a per-game package.json or vite config.",
289
+ )
290
+ if (repoType === "workspace-monorepo") repoContextLines.push("This is a workspace monorepo. The game has its own package.json.")
291
+
216
292
  p.log.step("Running Puzzmo migration pipeline...")
217
- await runSkillsPipelineTUI(selectedAgent, gameDir)
293
+ await runSkillsPipelineTUI(selectedAgent, gameDir, repoContextLines.join("\n"))
218
294
  }
219
295
 
220
296
  // Done
221
- const pm = opts.pm || "npm"
297
+ const pm = opts.pm || repo.packageManager
222
298
  const runCmd = pm === "npm" ? "npx" : pm === "yarn" ? "yarn dlx" : "pnpm dlx"
223
299
  const relativePath = path.relative(process.cwd(), gameDir)
224
300
 
@@ -2,12 +2,27 @@ import fs from "node:fs"
2
2
  import path from "node:path"
3
3
  import { execSync } from "node:child_process"
4
4
 
5
+ /** The type of repo we're in */
6
+ export type RepoType =
7
+ /** Not in a git repo */
8
+ | "none"
9
+ /** A standalone single-game repo (has package.json, no workspaces, no games/ dir) */
10
+ | "standalone"
11
+ /** A multi-game repo with a shared root package.json (has games/ dir, no workspaces) */
12
+ | "multi-game"
13
+ /** A monorepo with workspace-managed packages */
14
+ | "workspace-monorepo"
15
+
16
+ export type PackageManager = "npm" | "yarn" | "pnpm"
17
+
5
18
  export type RepoContext = {
6
19
  inGitRepo: boolean
7
20
  repoRoot: string | null
8
- hasWorkspaces: boolean
21
+ repoType: RepoType
9
22
  /** Top-level workspace folders derived from globs (e.g. ["apps", "packages", "games"]) */
10
23
  workspaceFolders: string[]
24
+ /** Detected package manager based on lockfiles and packageManager field */
25
+ packageManager: PackageManager
11
26
  }
12
27
 
13
28
  /** Extracts top-level folder names from workspace glob patterns like "apps/*" or "packages/**" */
@@ -62,7 +77,21 @@ const readPnpmWorkspaces = (repoRoot: string): string[] | null => {
62
77
  return null
63
78
  }
64
79
 
65
- /** Detects whether we're inside a git repo and if it's a monorepo with workspace folders */
80
+ /** Detects package manager from lock files and the packageManager field */
81
+ const detectPackageManager = (repoRoot: string): PackageManager => {
82
+ if (fs.existsSync(path.join(repoRoot, "yarn.lock"))) return "yarn"
83
+ if (fs.existsSync(path.join(repoRoot, "pnpm-lock.yaml"))) return "pnpm"
84
+ try {
85
+ const pkg = JSON.parse(fs.readFileSync(path.join(repoRoot, "package.json"), "utf-8"))
86
+ if (typeof pkg.packageManager === "string") {
87
+ if (pkg.packageManager.startsWith("yarn")) return "yarn"
88
+ if (pkg.packageManager.startsWith("pnpm")) return "pnpm"
89
+ }
90
+ } catch {}
91
+ return "npm"
92
+ }
93
+
94
+ /** Detects the repo type, root, workspace folders, and package manager */
66
95
  export const detectRepoContext = (): RepoContext => {
67
96
  let repoRoot: string | null = null
68
97
 
@@ -70,15 +99,21 @@ export const detectRepoContext = (): RepoContext => {
70
99
  const result = execSync("git rev-parse --show-toplevel", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] })
71
100
  repoRoot = result.trim()
72
101
  } catch {
73
- return { inGitRepo: false, repoRoot: null, hasWorkspaces: false, workspaceFolders: [] }
102
+ return { inGitRepo: false, repoRoot: null, repoType: "none", workspaceFolders: [], packageManager: "npm" }
74
103
  }
75
104
 
105
+ const pm = detectPackageManager(repoRoot)
76
106
  const globs = readPackageJsonWorkspaces(repoRoot) ?? readPnpmWorkspaces(repoRoot)
77
- const hasWorkspaces = globs !== null
78
- const workspaceFolders = globs ? foldersFromGlobs(globs) : []
79
107
 
80
- // Also recognize a games/ directory even without formal workspaces config
81
- if (!workspaceFolders.includes("games") && fs.existsSync(path.join(repoRoot, "games"))) workspaceFolders.push("games")
108
+ if (globs) {
109
+ const workspaceFolders = foldersFromGlobs(globs)
110
+ // Also recognize a games/ directory even if not in workspace globs
111
+ if (!workspaceFolders.includes("games") && fs.existsSync(path.join(repoRoot, "games"))) workspaceFolders.push("games")
112
+ return { inGitRepo: true, repoRoot, repoType: "workspace-monorepo", workspaceFolders, packageManager: pm }
113
+ }
114
+
115
+ const hasGamesDir = fs.existsSync(path.join(repoRoot, "games"))
116
+ if (hasGamesDir) return { inGitRepo: true, repoRoot, repoType: "multi-game", workspaceFolders: ["games"], packageManager: pm }
82
117
 
83
- return { inGitRepo: true, repoRoot, hasWorkspaces: hasWorkspaces || workspaceFolders.length > 0, workspaceFolders }
118
+ return { inGitRepo: true, repoRoot, repoType: "standalone", workspaceFolders: [], packageManager: pm }
84
119
  }
@@ -6,9 +6,9 @@ import { fetchSkillPrompt } from "./mcp-client.js"
6
6
  import { runPipelineTUI } from "../tui/pipeline.js"
7
7
 
8
8
  /** Fetches step instructions from the MCP server and wraps them as an agent prompt */
9
- const buildPrompt = async (stepName: string, gameDir: string): Promise<string> => {
9
+ const buildPrompt = async (stepName: string, gameDir: string, repoContext: string): Promise<string> => {
10
10
  const instructions = await fetchSkillPrompt(stepName, gameDir)
11
- return `Follow these instructions. The game source is in the current directory.\n\n${instructions}`
11
+ return `Follow these instructions. The game source is in the current directory.\n\n${repoContext}\n\n${instructions}`
12
12
  }
13
13
 
14
14
  /** Invokes an LLM agent with a prompt (plain mode, stdio inherited) */
@@ -31,7 +31,7 @@ const invokeAgent = (agent: string, prompt: string, cwd: string): { success: boo
31
31
  }
32
32
 
33
33
  /** Runs the skills pipeline with plain console output (no TUI) */
34
- export const runSkillsPipeline = async (agent: string, gameDir: string) => {
34
+ export const runSkillsPipeline = async (agent: string, gameDir: string, repoContext: string) => {
35
35
  const total = skillsPipeline.length
36
36
 
37
37
  for (let i = 0; i < total; i++) {
@@ -39,7 +39,7 @@ export const runSkillsPipeline = async (agent: string, gameDir: string) => {
39
39
  const step = i + 1
40
40
  console.log(`[${step}/${total}] Running step: ${skill.name}`)
41
41
 
42
- const prompt = await buildPrompt(skill.name, gameDir)
42
+ const prompt = await buildPrompt(skill.name, gameDir, repoContext)
43
43
  let result = invokeAgent(agent, prompt, gameDir)
44
44
 
45
45
  if (!result.success) {
@@ -79,6 +79,6 @@ export const runSkillsPipeline = async (agent: string, gameDir: string) => {
79
79
  }
80
80
 
81
81
  /** Runs the skills pipeline with a split-pane TUI */
82
- export const runSkillsPipelineTUI = async (agent: string, gameDir: string) => {
83
- await runPipelineTUI(agent, gameDir)
82
+ export const runSkillsPipelineTUI = async (agent: string, gameDir: string, repoContext: string) => {
83
+ await runPipelineTUI(agent, gameDir, repoContext)
84
84
  }
@@ -59,9 +59,9 @@ const buildAgentCmd = (agent: string, prompt: string): { cmd: string; args: stri
59
59
  }
60
60
 
61
61
  /** Fetches step instructions from the MCP server and wraps them as an agent prompt */
62
- const buildPrompt = async (stepName: string, gameDir: string): Promise<string> => {
62
+ const buildPrompt = async (stepName: string, gameDir: string, repoContext: string): Promise<string> => {
63
63
  const instructions = await fetchSkillPrompt(stepName, gameDir)
64
- return `Follow these instructions. The game source is in the current directory.\n\n${instructions}`
64
+ return `Follow these instructions. The game source is in the current directory.\n\n${repoContext}\n\n${instructions}`
65
65
  }
66
66
 
67
67
  class PipelineTUI {
@@ -78,6 +78,7 @@ class PipelineTUI {
78
78
  constructor(
79
79
  private agent: string,
80
80
  private gameDir: string,
81
+ private repoContext: string,
81
82
  ) {
82
83
  this.states = skillsPipeline.map(() => "pending")
83
84
  this.logsDir = path.join(gameDir, ".puzzmo", "logs")
@@ -400,7 +401,7 @@ class PipelineTUI {
400
401
 
401
402
  let prompt: string
402
403
  try {
403
- prompt = await buildPrompt(skill.name, this.gameDir)
404
+ prompt = await buildPrompt(skill.name, this.gameDir, this.repoContext)
404
405
  } catch (e: any) {
405
406
  this.appendOutput(`Failed to fetch instructions: ${e.message}`)
406
407
  this.writeSkillLog(skill.name)
@@ -512,7 +513,7 @@ class PipelineTUI {
512
513
  }
513
514
 
514
515
  /** Render the pipeline TUI and wait for it to complete */
515
- export const runPipelineTUI = async (agent: string, gameDir: string): Promise<void> => {
516
- const tui = new PipelineTUI(agent, gameDir)
516
+ export const runPipelineTUI = async (agent: string, gameDir: string, repoContext: string): Promise<void> => {
517
+ const tui = new PipelineTUI(agent, gameDir, repoContext)
517
518
  await tui.run()
518
519
  }