@puzzmo/cli 1.0.25 → 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.
- package/lib/commands/game/create.js +99 -26
- package/lib/commands/game/create.js.map +1 -1
- package/lib/commands/game/detectRepo.d.ts +15 -2
- package/lib/commands/game/detectRepo.js +32 -8
- package/lib/commands/game/detectRepo.js.map +1 -1
- package/lib/skills/mcp-client.d.ts +2 -2
- package/lib/skills/mcp-client.js +43 -32
- package/lib/skills/mcp-client.js.map +1 -1
- package/lib/skills/runner.d.ts +2 -2
- package/lib/skills/runner.js +12 -14
- package/lib/skills/runner.js.map +1 -1
- package/lib/tui/pipeline.d.ts +1 -1
- package/lib/tui/pipeline.js +23 -13
- package/lib/tui/pipeline.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/game/create.ts +101 -25
- package/src/commands/game/detectRepo.ts +43 -8
- package/src/skills/mcp-client.ts +37 -26
- package/src/skills/runner.ts +12 -13
- package/src/tui/pipeline.ts +21 -11
|
@@ -69,8 +69,8 @@ const setupNewRepo = (gameDir) => {
|
|
|
69
69
|
gitCommit("Initial game import", { cwd: gameDir });
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
/**
|
|
73
|
-
const
|
|
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
|
|
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 (
|
|
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,47 +189,60 @@ 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
|
|
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
|
-
//
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
if (
|
|
172
|
-
|
|
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 =
|
|
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();
|
|
178
243
|
const agentChoices = [
|
|
179
244
|
...agents.map((a) => ({ value: a.binary, label: `${a.displayName} (${a.path})` })),
|
|
180
|
-
{ value: "none", label: "None - I'll run the
|
|
245
|
+
{ value: "none", label: "None - I'll run the steps manually" },
|
|
181
246
|
];
|
|
182
247
|
let selectedAgent;
|
|
183
248
|
if (opts.agent) {
|
|
@@ -193,11 +258,19 @@ export const gameCreate = async (args) => {
|
|
|
193
258
|
selectedAgent = "none";
|
|
194
259
|
}
|
|
195
260
|
if (selectedAgent !== "none") {
|
|
196
|
-
|
|
197
|
-
|
|
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.");
|
|
269
|
+
p.log.step("Running Puzzmo migration pipeline...");
|
|
270
|
+
await runSkillsPipelineTUI(selectedAgent, gameDir, repoContextLines.join("\n"));
|
|
198
271
|
}
|
|
199
272
|
// Done
|
|
200
|
-
const pm = opts.pm ||
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"detectRepo.js","sourceRoot":"","sources":["../../../src/commands/game/detectRepo.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ export declare const listMcpPrompts: (gameDir: string) => Promise<{
|
|
|
5
5
|
name: string;
|
|
6
6
|
description?: string;
|
|
7
7
|
}[] | null>;
|
|
8
|
-
/** Fetches a
|
|
9
|
-
export declare const fetchSkillPrompt: (
|
|
8
|
+
/** Fetches a step's instructions from the MCP server configured in .mcp.json */
|
|
9
|
+
export declare const fetchSkillPrompt: (stepName: string, gameDir: string) => Promise<string>;
|
package/lib/skills/mcp-client.js
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
/** Reads the .mcp.json config
|
|
3
|
+
/** Reads the .mcp.json config, searching the game directory and ancestor directories */
|
|
4
4
|
const readMcpConfig = (gameDir) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
let dir = path.resolve(gameDir);
|
|
6
|
+
const root = path.parse(dir).root;
|
|
7
|
+
while (dir !== root) {
|
|
8
|
+
const mcpPath = path.join(dir, ".mcp.json");
|
|
9
|
+
if (fs.existsSync(mcpPath)) {
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(fs.readFileSync(mcpPath, "utf-8"));
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
dir = path.dirname(dir);
|
|
13
18
|
}
|
|
19
|
+
return null;
|
|
14
20
|
};
|
|
15
21
|
/** Sends a JSON-RPC request to the MCP server and parses the SSE response */
|
|
16
22
|
const mcpRequest = async (url, headers, method, params = {}) => {
|
|
@@ -23,6 +29,8 @@ const mcpRequest = async (url, headers, method, params = {}) => {
|
|
|
23
29
|
},
|
|
24
30
|
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }),
|
|
25
31
|
});
|
|
32
|
+
if (!response.ok)
|
|
33
|
+
throw new Error(`MCP server returned ${response.status} ${response.statusText}`);
|
|
26
34
|
const text = await response.text();
|
|
27
35
|
// Parse SSE format: lines starting with "data: " contain the JSON payload
|
|
28
36
|
for (const line of text.split("\n")) {
|
|
@@ -30,12 +38,17 @@ const mcpRequest = async (url, headers, method, params = {}) => {
|
|
|
30
38
|
continue;
|
|
31
39
|
try {
|
|
32
40
|
const parsed = JSON.parse(line.slice(6));
|
|
41
|
+
if (parsed.error)
|
|
42
|
+
throw new Error(`MCP error: ${parsed.error.message ?? JSON.stringify(parsed.error)}`);
|
|
33
43
|
if (parsed.result)
|
|
34
44
|
return parsed.result;
|
|
35
45
|
}
|
|
36
|
-
catch {
|
|
46
|
+
catch (e) {
|
|
47
|
+
if (e instanceof Error && e.message.startsWith("MCP error:"))
|
|
48
|
+
throw e;
|
|
49
|
+
}
|
|
37
50
|
}
|
|
38
|
-
|
|
51
|
+
throw new Error(`MCP server returned no result. Response body: ${text.slice(0, 200)}`);
|
|
39
52
|
};
|
|
40
53
|
/** Returns the MCP server URL from .mcp.json, or null if not configured */
|
|
41
54
|
export const getMcpUrl = (gameDir) => {
|
|
@@ -63,30 +76,28 @@ export const listMcpPrompts = async (gameDir) => {
|
|
|
63
76
|
return null;
|
|
64
77
|
}
|
|
65
78
|
};
|
|
66
|
-
/** Fetches a
|
|
67
|
-
export const fetchSkillPrompt = async (
|
|
79
|
+
/** Fetches a step's instructions from the MCP server configured in .mcp.json */
|
|
80
|
+
export const fetchSkillPrompt = async (stepName, gameDir) => {
|
|
68
81
|
const config = readMcpConfig(gameDir);
|
|
69
82
|
if (!config)
|
|
70
|
-
|
|
83
|
+
throw new Error(`No .mcp.json found in ${gameDir}`);
|
|
71
84
|
const server = Object.values(config.mcpServers)[0];
|
|
72
85
|
if (!server)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
86
|
+
throw new Error("No MCP server configured in .mcp.json");
|
|
87
|
+
const result = await mcpRequest(server.url, server.headers ?? {}, "prompts/get", { name: stepName });
|
|
88
|
+
if (!result?.messages?.length)
|
|
89
|
+
throw new Error(`MCP server returned no instructions for "${stepName}"`);
|
|
90
|
+
const text = result.messages
|
|
91
|
+
.map((m) => {
|
|
92
|
+
if (typeof m.content === "string")
|
|
93
|
+
return m.content;
|
|
94
|
+
if (m.content?.text)
|
|
95
|
+
return m.content.text;
|
|
96
|
+
return "";
|
|
97
|
+
})
|
|
98
|
+
.join("\n");
|
|
99
|
+
if (!text.trim())
|
|
100
|
+
throw new Error(`MCP server returned empty instructions for "${stepName}"`);
|
|
101
|
+
return text;
|
|
91
102
|
};
|
|
92
103
|
//# sourceMappingURL=mcp-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/skills/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAM5B,
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/skills/mcp-client.ts"],"names":[],"mappings":"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"}
|
package/lib/skills/runner.d.ts
CHANGED
|
@@ -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>;
|
package/lib/skills/runner.js
CHANGED
|
@@ -3,12 +3,10 @@ import { skillsPipeline } from "./registry.js";
|
|
|
3
3
|
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
|
-
/** Fetches
|
|
7
|
-
const buildPrompt = async (
|
|
8
|
-
const instructions = await fetchSkillPrompt(
|
|
9
|
-
|
|
10
|
-
return `${instructions}\n\nThe game source is in the current directory.`;
|
|
11
|
-
return `Run the skill "${skillName}". The game source is in the current directory.`;
|
|
6
|
+
/** Fetches step instructions from the MCP server and wraps them as an agent prompt */
|
|
7
|
+
const buildPrompt = async (stepName, gameDir, repoContext) => {
|
|
8
|
+
const instructions = await fetchSkillPrompt(stepName, gameDir);
|
|
9
|
+
return `Follow these instructions. The game source is in the current directory.\n\n${repoContext}\n\n${instructions}`;
|
|
12
10
|
};
|
|
13
11
|
/** Invokes an LLM agent with a prompt (plain mode, stdio inherited) */
|
|
14
12
|
const invokeAgent = (agent, prompt, cwd) => {
|
|
@@ -28,19 +26,19 @@ const invokeAgent = (agent, prompt, cwd) => {
|
|
|
28
26
|
};
|
|
29
27
|
};
|
|
30
28
|
/** Runs the skills pipeline with plain console output (no TUI) */
|
|
31
|
-
export const runSkillsPipeline = async (agent, gameDir) => {
|
|
29
|
+
export const runSkillsPipeline = async (agent, gameDir, repoContext) => {
|
|
32
30
|
const total = skillsPipeline.length;
|
|
33
31
|
for (let i = 0; i < total; i++) {
|
|
34
32
|
const skill = skillsPipeline[i];
|
|
35
33
|
const step = i + 1;
|
|
36
|
-
console.log(`[${step}/${total}] Running
|
|
37
|
-
const prompt = await buildPrompt(skill.name, gameDir);
|
|
34
|
+
console.log(`[${step}/${total}] Running step: ${skill.name}`);
|
|
35
|
+
const prompt = await buildPrompt(skill.name, gameDir, repoContext);
|
|
38
36
|
let result = invokeAgent(agent, prompt, gameDir);
|
|
39
37
|
if (!result.success) {
|
|
40
38
|
console.log(` Agent failed, retrying...`);
|
|
41
39
|
result = invokeAgent(agent, prompt, gameDir);
|
|
42
40
|
if (!result.success) {
|
|
43
|
-
console.error(`
|
|
41
|
+
console.error(` Step ${skill.name} failed after retry. Stopping pipeline.`);
|
|
44
42
|
process.exit(1);
|
|
45
43
|
}
|
|
46
44
|
}
|
|
@@ -48,7 +46,7 @@ export const runSkillsPipeline = async (agent, gameDir) => {
|
|
|
48
46
|
const buildResult = verifyBuild(gameDir);
|
|
49
47
|
if (!buildResult.success) {
|
|
50
48
|
console.log(` Build failed after ${skill.name}, asking agent to fix...`);
|
|
51
|
-
const fixPrompt = `The vite build failed after
|
|
49
|
+
const fixPrompt = `The vite build failed after the "${skill.name}" step. Fix the build errors:\n\n${buildResult.error}`;
|
|
52
50
|
invokeAgent(agent, fixPrompt, gameDir);
|
|
53
51
|
const retryBuild = verifyBuild(gameDir);
|
|
54
52
|
if (!retryBuild.success) {
|
|
@@ -59,7 +57,7 @@ export const runSkillsPipeline = async (agent, gameDir) => {
|
|
|
59
57
|
// Commit
|
|
60
58
|
try {
|
|
61
59
|
runCommand("git add -A", { cwd: gameDir });
|
|
62
|
-
gitCommit(`
|
|
60
|
+
gitCommit(`step: ${skill.name}`, { cwd: gameDir });
|
|
63
61
|
console.log(` Committed.`);
|
|
64
62
|
}
|
|
65
63
|
catch {
|
|
@@ -69,7 +67,7 @@ export const runSkillsPipeline = async (agent, gameDir) => {
|
|
|
69
67
|
console.log(`\nAll skills completed!`);
|
|
70
68
|
};
|
|
71
69
|
/** Runs the skills pipeline with a split-pane TUI */
|
|
72
|
-
export const runSkillsPipelineTUI = async (agent, gameDir) => {
|
|
73
|
-
await runPipelineTUI(agent, gameDir);
|
|
70
|
+
export const runSkillsPipelineTUI = async (agent, gameDir, repoContext) => {
|
|
71
|
+
await runPipelineTUI(agent, gameDir, repoContext);
|
|
74
72
|
};
|
|
75
73
|
//# sourceMappingURL=runner.js.map
|
package/lib/skills/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/skills/runner.ts"],"names":[],"mappings":"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"}
|
package/lib/tui/pipeline.d.ts
CHANGED
|
@@ -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>;
|