neuron-inspector 0.2.0 → 0.2.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.
- package/dist/recipe-tools.js +90 -0
- package/dist/recipe-tools.js.map +1 -1
- package/dist/recipes.d.ts +2 -0
- package/dist/recipes.js +80 -114
- package/dist/recipes.js.map +1 -1
- package/package.json +4 -3
package/dist/recipe-tools.js
CHANGED
|
@@ -3,7 +3,33 @@
|
|
|
3
3
|
* through the same mcp.tool() overload. Handled locally (no extension needed).
|
|
4
4
|
*/
|
|
5
5
|
import * as recipes from "./recipes.js";
|
|
6
|
+
/** Track the active recipe so neuron_recipe_complete knows what to log. */
|
|
7
|
+
let activeRecipe = null;
|
|
6
8
|
export const RECIPE_TOOLS = [
|
|
9
|
+
{
|
|
10
|
+
name: "neuron_recipe_run",
|
|
11
|
+
description: "Start a recipe run. Loads the recipe's agent.md with variables interpolated, its learnings, and resolved variables (auto-filled from profile). Returns everything the AI needs to execute the recipe. Call neuron_recipe_complete when done to auto-log the outcome to memory.",
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: "object",
|
|
14
|
+
properties: {
|
|
15
|
+
slug: { type: "string", description: "Recipe slug (e.g. 'web-researcher', 'qa-engineer')" },
|
|
16
|
+
variables: { type: "object", description: "Variable overrides — keys matching recipe.yaml variable names. Merged on top of profile defaults." },
|
|
17
|
+
},
|
|
18
|
+
required: ["slug"],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "neuron_recipe_complete",
|
|
23
|
+
description: "End a recipe run started with neuron_recipe_run. Logs the outcome to the recipe's memory automatically. Provide the outcome data matching the recipe's Reflect section. If the recipe has 5+ memory entries, also return the learnings so the evolve phase can update strategy.",
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
outcome: { type: "object", description: "Run outcome — structure varies per recipe, see the Reflect section in agent.md" },
|
|
28
|
+
updated_learnings: { type: "string", description: "If you ran the evolve phase, provide the updated learnings.md content here to persist it" },
|
|
29
|
+
},
|
|
30
|
+
required: ["outcome"],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
7
33
|
{
|
|
8
34
|
name: "neuron_recipe_list",
|
|
9
35
|
description: "List all available recipes (bundled + user-installed). Shows name, description, whether it has accumulated learnings, and run count.",
|
|
@@ -127,6 +153,70 @@ export const RECIPE_TOOLS = [
|
|
|
127
153
|
/** Handle a recipe tool call locally (no extension needed). */
|
|
128
154
|
export async function handleRecipeTool(name, args) {
|
|
129
155
|
switch (name) {
|
|
156
|
+
case "neuron_recipe_run": {
|
|
157
|
+
const slug = args.slug;
|
|
158
|
+
const recipe = recipes.getRecipe(slug);
|
|
159
|
+
if (!recipe)
|
|
160
|
+
throw new Error(`Recipe "${slug}" not found.`);
|
|
161
|
+
// Merge user-provided variables on top of profile-resolved defaults
|
|
162
|
+
const userVars = args.variables ?? {};
|
|
163
|
+
const resolved = { ...recipe.resolved_variables, ...userVars };
|
|
164
|
+
// Interpolate variables into agent.md
|
|
165
|
+
let instructions = recipe.agent_md;
|
|
166
|
+
for (const [key, value] of Object.entries(resolved)) {
|
|
167
|
+
instructions = instructions.replaceAll(`{{${key}}}`, String(value ?? ""));
|
|
168
|
+
}
|
|
169
|
+
// Track active run
|
|
170
|
+
activeRecipe = { slug, startedAt: new Date().toISOString(), variables: resolved };
|
|
171
|
+
// Get memory stats for evolve hint
|
|
172
|
+
const memory = recipes.getMemory(slug, 1);
|
|
173
|
+
const shouldEvolve = memory.total >= 5;
|
|
174
|
+
return {
|
|
175
|
+
recipe: recipe.meta.name,
|
|
176
|
+
slug,
|
|
177
|
+
instructions,
|
|
178
|
+
learnings: recipe.learnings,
|
|
179
|
+
resolved_variables: resolved,
|
|
180
|
+
unfilled_variables: Object.entries(recipe.variables)
|
|
181
|
+
.filter(([key]) => !(key in resolved) || resolved[key] === undefined || resolved[key] === "")
|
|
182
|
+
.map(([key, def]) => ({ key, ...def })),
|
|
183
|
+
memory_count: memory.total,
|
|
184
|
+
evolve_hint: shouldEvolve
|
|
185
|
+
? `This recipe has ${memory.total} past runs. After completing this run, read memory with neuron_recipe_memory, analyze patterns, and update learnings with neuron_recipe_complete (include updated_learnings).`
|
|
186
|
+
: null,
|
|
187
|
+
pipes: recipe.recipe_yaml.includes("inputs:")
|
|
188
|
+
? "This recipe has input pipes — check resolved_variables for data from other recipes."
|
|
189
|
+
: null,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
case "neuron_recipe_complete": {
|
|
193
|
+
if (!activeRecipe)
|
|
194
|
+
throw new Error("No active recipe run. Call neuron_recipe_run first.");
|
|
195
|
+
const { slug, startedAt, variables } = activeRecipe;
|
|
196
|
+
const outcome = args.outcome ?? {};
|
|
197
|
+
// Auto-log memory
|
|
198
|
+
const entry = {
|
|
199
|
+
started_at: startedAt,
|
|
200
|
+
completed_at: new Date().toISOString(),
|
|
201
|
+
variables_used: variables,
|
|
202
|
+
...outcome,
|
|
203
|
+
};
|
|
204
|
+
const memResult = recipes.logMemory(slug, entry);
|
|
205
|
+
// Persist updated learnings if provided (evolve phase)
|
|
206
|
+
const updatedLearnings = args.updated_learnings;
|
|
207
|
+
if (updatedLearnings) {
|
|
208
|
+
recipes.updateRecipe(slug, { learnings: updatedLearnings });
|
|
209
|
+
}
|
|
210
|
+
// Get updated memory count
|
|
211
|
+
const memory = recipes.getMemory(slug, 1);
|
|
212
|
+
activeRecipe = null;
|
|
213
|
+
return {
|
|
214
|
+
logged_to: memResult.path,
|
|
215
|
+
total_runs: memory.total,
|
|
216
|
+
learnings_updated: !!updatedLearnings,
|
|
217
|
+
next_evolve_at: memory.total < 5 ? `${5 - memory.total} more runs until first evolve` : "Ready to evolve — review memory and update learnings on next run",
|
|
218
|
+
};
|
|
219
|
+
}
|
|
130
220
|
case "neuron_recipe_list":
|
|
131
221
|
return recipes.listRecipes();
|
|
132
222
|
case "neuron_recipe_get": {
|
package/dist/recipe-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe-tools.js","sourceRoot":"","sources":["../src/recipe-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipe-tools.js","sourceRoot":"","sources":["../src/recipe-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/recipes.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export declare function getRecipe(slug: string): {
|
|
|
22
22
|
recipe_yaml: string;
|
|
23
23
|
learnings: string | null;
|
|
24
24
|
variables: Record<string, unknown>;
|
|
25
|
+
profile: Record<string, unknown> | null;
|
|
26
|
+
resolved_variables: Record<string, unknown>;
|
|
25
27
|
} | null;
|
|
26
28
|
export declare function createRecipe(slug: string, name: string, description: string, agentMd: string, recipeYaml: string): {
|
|
27
29
|
path: string;
|
package/dist/recipes.js
CHANGED
|
@@ -6,10 +6,10 @@ import * as fs from "node:fs";
|
|
|
6
6
|
import * as path from "node:path";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import { execSync } from "node:child_process";
|
|
9
|
+
import YAML from "yaml";
|
|
9
10
|
// ── Paths ───────────────────────────────────────────────────
|
|
10
11
|
/** Bundled recipes shipped with the package */
|
|
11
12
|
function bundledRecipesDir() {
|
|
12
|
-
// recipes/ sits next to src/ in the package root
|
|
13
13
|
const srcDir = path.dirname(new URL(import.meta.url).pathname);
|
|
14
14
|
return path.join(srcDir, "..", "recipes");
|
|
15
15
|
}
|
|
@@ -33,36 +33,23 @@ function readText(filePath) {
|
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const val = match[2].trim();
|
|
44
|
-
if (val === "true")
|
|
45
|
-
result[match[1]] = true;
|
|
46
|
-
else if (val === "false")
|
|
47
|
-
result[match[1]] = false;
|
|
48
|
-
else if (/^\d+$/.test(val))
|
|
49
|
-
result[match[1]] = parseInt(val, 10);
|
|
50
|
-
else
|
|
51
|
-
result[match[1]] = val.replace(/^["']|["']$/g, "");
|
|
52
|
-
}
|
|
36
|
+
function parseYaml(text) {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = YAML.parse(text);
|
|
39
|
+
return typeof parsed === "object" && parsed !== null ? parsed : {};
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return {};
|
|
53
43
|
}
|
|
54
|
-
return result;
|
|
55
44
|
}
|
|
56
45
|
function parseRecipe(dir, location) {
|
|
57
46
|
const yamlPath = path.join(dir, "recipe.yaml");
|
|
58
47
|
const yamlText = readText(yamlPath);
|
|
59
48
|
if (!yamlText)
|
|
60
49
|
return null;
|
|
61
|
-
const meta =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const tags = tagsMatch
|
|
65
|
-
? tagsMatch[1].split(",").map((t) => t.trim().replace(/^["']|["']$/g, "")).filter(Boolean)
|
|
50
|
+
const meta = parseYaml(yamlText);
|
|
51
|
+
const tags = Array.isArray(meta.tags)
|
|
52
|
+
? meta.tags.map(String)
|
|
66
53
|
: [];
|
|
67
54
|
const memoryDir = path.join(dir, "memory");
|
|
68
55
|
const memoryFiles = fs.existsSync(memoryDir)
|
|
@@ -83,10 +70,31 @@ function parseRecipe(dir, location) {
|
|
|
83
70
|
memory_count: memoryFiles.length,
|
|
84
71
|
};
|
|
85
72
|
}
|
|
86
|
-
// ──
|
|
73
|
+
// ── Resolve recipe directory ────────────────────────────────
|
|
74
|
+
function resolveRecipeDir(slug) {
|
|
75
|
+
const userDir = path.join(userRecipesDir(), slug);
|
|
76
|
+
if (fs.existsSync(userDir))
|
|
77
|
+
return userDir;
|
|
78
|
+
const bundledDir = path.join(bundledRecipesDir(), slug);
|
|
79
|
+
if (fs.existsSync(bundledDir))
|
|
80
|
+
return bundledDir;
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/** Fork a bundled recipe to user dir for writing, return the user dir path. */
|
|
84
|
+
function ensureWritable(slug) {
|
|
85
|
+
const userDir = path.join(userRecipesDir(), slug);
|
|
86
|
+
if (fs.existsSync(userDir))
|
|
87
|
+
return userDir;
|
|
88
|
+
const bundledDir = path.join(bundledRecipesDir(), slug);
|
|
89
|
+
if (fs.existsSync(bundledDir)) {
|
|
90
|
+
fs.cpSync(bundledDir, userDir, { recursive: true });
|
|
91
|
+
return userDir;
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`Recipe "${slug}" not found.`);
|
|
94
|
+
}
|
|
95
|
+
// ── Public API ──────────────────────────────────────────────
|
|
87
96
|
export function listRecipes() {
|
|
88
97
|
const recipes = [];
|
|
89
|
-
// Bundled
|
|
90
98
|
const bundled = bundledRecipesDir();
|
|
91
99
|
if (fs.existsSync(bundled)) {
|
|
92
100
|
for (const entry of fs.readdirSync(bundled, { withFileTypes: true })) {
|
|
@@ -97,7 +105,6 @@ export function listRecipes() {
|
|
|
97
105
|
recipes.push(r);
|
|
98
106
|
}
|
|
99
107
|
}
|
|
100
|
-
// User
|
|
101
108
|
const user = userRecipesDir();
|
|
102
109
|
for (const entry of fs.readdirSync(user, { withFileTypes: true })) {
|
|
103
110
|
if (!entry.isDirectory())
|
|
@@ -109,40 +116,39 @@ export function listRecipes() {
|
|
|
109
116
|
return recipes;
|
|
110
117
|
}
|
|
111
118
|
export function getRecipe(slug) {
|
|
112
|
-
|
|
113
|
-
const userDir = path.join(userRecipesDir(), slug);
|
|
114
|
-
const bundledDir = path.join(bundledRecipesDir(), slug);
|
|
115
|
-
const dir = fs.existsSync(userDir) ? userDir : fs.existsSync(bundledDir) ? bundledDir : null;
|
|
119
|
+
const dir = resolveRecipeDir(slug);
|
|
116
120
|
if (!dir)
|
|
117
121
|
return null;
|
|
118
|
-
const location = dir
|
|
122
|
+
const location = dir.startsWith(userRecipesDir()) ? "user" : "bundled";
|
|
119
123
|
const meta = parseRecipe(dir, location);
|
|
120
124
|
if (!meta)
|
|
121
125
|
return null;
|
|
122
126
|
const agentMd = readText(path.join(dir, "agent.md")) ?? "";
|
|
123
127
|
const recipeYaml = readText(path.join(dir, "recipe.yaml")) ?? "";
|
|
124
128
|
const learnings = readText(path.join(dir, "learnings.md"));
|
|
125
|
-
|
|
126
|
-
const variables = {};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
else if (currentVar) {
|
|
138
|
-
const propMatch = line.match(/^\s{4}(\w+):\s*(.+)/);
|
|
139
|
-
if (propMatch) {
|
|
140
|
-
variables[currentVar][propMatch[1]] = propMatch[2].trim().replace(/^["']|["']$/g, "");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
129
|
+
const parsed = parseYaml(recipeYaml);
|
|
130
|
+
const variables = parsed.variables ?? {};
|
|
131
|
+
// Merge profile into variables to pre-fill matching keys
|
|
132
|
+
const profile = getProfile();
|
|
133
|
+
const resolved = {};
|
|
134
|
+
for (const [varName, varDef] of Object.entries(variables)) {
|
|
135
|
+
const def = varDef;
|
|
136
|
+
if (profile && varName in profile) {
|
|
137
|
+
resolved[varName] = profile[varName];
|
|
138
|
+
}
|
|
139
|
+
else if (def && "default" in def) {
|
|
140
|
+
resolved[varName] = def.default;
|
|
143
141
|
}
|
|
144
142
|
}
|
|
145
|
-
return {
|
|
143
|
+
return {
|
|
144
|
+
meta,
|
|
145
|
+
agent_md: agentMd,
|
|
146
|
+
recipe_yaml: recipeYaml,
|
|
147
|
+
learnings,
|
|
148
|
+
variables,
|
|
149
|
+
profile,
|
|
150
|
+
resolved_variables: resolved,
|
|
151
|
+
};
|
|
146
152
|
}
|
|
147
153
|
export function createRecipe(slug, name, description, agentMd, recipeYaml) {
|
|
148
154
|
const dir = path.join(userRecipesDir(), slug);
|
|
@@ -156,20 +162,7 @@ export function createRecipe(slug, name, description, agentMd, recipeYaml) {
|
|
|
156
162
|
return { path: dir };
|
|
157
163
|
}
|
|
158
164
|
export function updateRecipe(slug, updates) {
|
|
159
|
-
const
|
|
160
|
-
const bundledDir = path.join(bundledRecipesDir(), slug);
|
|
161
|
-
let dir;
|
|
162
|
-
if (fs.existsSync(userDir)) {
|
|
163
|
-
dir = userDir;
|
|
164
|
-
}
|
|
165
|
-
else if (fs.existsSync(bundledDir)) {
|
|
166
|
-
// Fork bundled recipe to user dir before editing
|
|
167
|
-
fs.cpSync(bundledDir, userDir, { recursive: true });
|
|
168
|
-
dir = userDir;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
throw new Error(`Recipe "${slug}" not found.`);
|
|
172
|
-
}
|
|
165
|
+
const dir = ensureWritable(slug);
|
|
173
166
|
if (updates.agent_md)
|
|
174
167
|
fs.writeFileSync(path.join(dir, "agent.md"), updates.agent_md);
|
|
175
168
|
if (updates.learnings)
|
|
@@ -179,21 +172,7 @@ export function updateRecipe(slug, updates) {
|
|
|
179
172
|
return { path: dir };
|
|
180
173
|
}
|
|
181
174
|
export function logMemory(slug, entry) {
|
|
182
|
-
const
|
|
183
|
-
const bundledDir = path.join(bundledRecipesDir(), slug);
|
|
184
|
-
// Memory always goes to user dir
|
|
185
|
-
let dir;
|
|
186
|
-
if (fs.existsSync(userDir)) {
|
|
187
|
-
dir = userDir;
|
|
188
|
-
}
|
|
189
|
-
else if (fs.existsSync(bundledDir)) {
|
|
190
|
-
// Fork to user dir
|
|
191
|
-
fs.cpSync(bundledDir, userDir, { recursive: true });
|
|
192
|
-
dir = userDir;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
throw new Error(`Recipe "${slug}" not found.`);
|
|
196
|
-
}
|
|
175
|
+
const dir = ensureWritable(slug);
|
|
197
176
|
const memDir = path.join(dir, "memory");
|
|
198
177
|
if (!fs.existsSync(memDir))
|
|
199
178
|
fs.mkdirSync(memDir, { recursive: true });
|
|
@@ -202,28 +181,12 @@ export function logMemory(slug, entry) {
|
|
|
202
181
|
const count = fs.readdirSync(memDir).length + 1;
|
|
203
182
|
const filename = `${ts}-run-${String(count).padStart(3, "0")}.yaml`;
|
|
204
183
|
const filepath = path.join(memDir, filename);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
for (const [key, value] of Object.entries(entry)) {
|
|
208
|
-
if (key === "date")
|
|
209
|
-
continue;
|
|
210
|
-
if (typeof value === "object" && value !== null) {
|
|
211
|
-
lines.push(`${key}:`);
|
|
212
|
-
for (const [k2, v2] of Object.entries(value)) {
|
|
213
|
-
lines.push(` ${k2}: ${JSON.stringify(v2)}`);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
lines.push(`${key}: ${JSON.stringify(value)}`);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
fs.writeFileSync(filepath, lines.join("\n") + "\n");
|
|
184
|
+
const data = { date: now.toISOString(), ...entry };
|
|
185
|
+
fs.writeFileSync(filepath, YAML.stringify(data));
|
|
221
186
|
return { path: filepath };
|
|
222
187
|
}
|
|
223
188
|
export function getMemory(slug, limit = 20) {
|
|
224
|
-
const
|
|
225
|
-
const bundledDir = path.join(bundledRecipesDir(), slug);
|
|
226
|
-
const dir = fs.existsSync(userDir) ? userDir : fs.existsSync(bundledDir) ? bundledDir : null;
|
|
189
|
+
const dir = resolveRecipeDir(slug);
|
|
227
190
|
if (!dir)
|
|
228
191
|
throw new Error(`Recipe "${slug}" not found.`);
|
|
229
192
|
const memDir = path.join(dir, "memory");
|
|
@@ -237,7 +200,7 @@ export function getMemory(slug, limit = 20) {
|
|
|
237
200
|
for (const f of files.slice(0, limit)) {
|
|
238
201
|
const text = readText(path.join(memDir, f));
|
|
239
202
|
if (text) {
|
|
240
|
-
entries.push({ _file: f, ...
|
|
203
|
+
entries.push({ _file: f, ...parseYaml(text) });
|
|
241
204
|
}
|
|
242
205
|
}
|
|
243
206
|
return { entries, total: files.length };
|
|
@@ -245,7 +208,6 @@ export function getMemory(slug, limit = 20) {
|
|
|
245
208
|
export function importRecipe(source) {
|
|
246
209
|
let srcDir;
|
|
247
210
|
if (source.startsWith("github:")) {
|
|
248
|
-
// github:user/repo or github:user/repo/path
|
|
249
211
|
const parts = source.slice(7).split("/");
|
|
250
212
|
const repo = `${parts[0]}/${parts[1]}`;
|
|
251
213
|
const subpath = parts.slice(2).join("/");
|
|
@@ -257,12 +219,9 @@ export function importRecipe(source) {
|
|
|
257
219
|
throw new Error(`Failed to clone https://github.com/${repo}`);
|
|
258
220
|
}
|
|
259
221
|
srcDir = subpath ? path.join(tmpDir, subpath) : tmpDir;
|
|
260
|
-
// If the cloned repo IS a recipe (has recipe.yaml at root), use it directly
|
|
261
222
|
if (!fs.existsSync(path.join(srcDir, "recipe.yaml"))) {
|
|
262
|
-
// Check if it's a repo with recipes/ subdir
|
|
263
223
|
const recipesSubdir = path.join(srcDir, "recipes");
|
|
264
224
|
if (fs.existsSync(recipesSubdir)) {
|
|
265
|
-
// Import all recipes from the repo
|
|
266
225
|
const imported = [];
|
|
267
226
|
for (const entry of fs.readdirSync(recipesSubdir, { withFileTypes: true })) {
|
|
268
227
|
if (!entry.isDirectory())
|
|
@@ -271,35 +230,40 @@ export function importRecipe(source) {
|
|
|
271
230
|
continue;
|
|
272
231
|
const destDir = path.join(userRecipesDir(), entry.name);
|
|
273
232
|
if (fs.existsSync(destDir))
|
|
274
|
-
continue;
|
|
233
|
+
continue;
|
|
275
234
|
fs.cpSync(path.join(recipesSubdir, entry.name), destDir, { recursive: true });
|
|
235
|
+
// Strip memory from imports
|
|
236
|
+
const mem = path.join(destDir, "memory");
|
|
237
|
+
if (fs.existsSync(mem))
|
|
238
|
+
fs.rmSync(mem, { recursive: true, force: true });
|
|
276
239
|
imported.push(entry.name);
|
|
277
240
|
}
|
|
278
|
-
// Clean up
|
|
279
241
|
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
280
242
|
if (imported.length === 0)
|
|
281
|
-
throw new Error("No recipes found in repository");
|
|
243
|
+
throw new Error("No new recipes found in repository");
|
|
282
244
|
return { slug: imported.join(", "), path: userRecipesDir() };
|
|
283
245
|
}
|
|
246
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
284
247
|
throw new Error("No recipe.yaml found in repository root or recipes/ subdirectory");
|
|
285
248
|
}
|
|
286
249
|
}
|
|
287
250
|
else {
|
|
288
|
-
// Local path
|
|
289
251
|
srcDir = path.resolve(source);
|
|
290
252
|
}
|
|
291
253
|
if (!fs.existsSync(path.join(srcDir, "recipe.yaml"))) {
|
|
292
254
|
throw new Error(`No recipe.yaml found at ${srcDir}`);
|
|
293
255
|
}
|
|
294
256
|
const yamlText = readText(path.join(srcDir, "recipe.yaml"));
|
|
295
|
-
const meta = yamlText ?
|
|
296
|
-
const slug = String(meta.name || path.basename(srcDir))
|
|
257
|
+
const meta = yamlText ? parseYaml(yamlText) : {};
|
|
258
|
+
const slug = String(meta.name || path.basename(srcDir))
|
|
259
|
+
.toLowerCase()
|
|
260
|
+
.replace(/\s+/g, "-")
|
|
261
|
+
.replace(/[^a-z0-9-]/g, "");
|
|
297
262
|
const destDir = path.join(userRecipesDir(), slug);
|
|
298
263
|
if (fs.existsSync(destDir)) {
|
|
299
264
|
throw new Error(`Recipe "${slug}" already exists. Delete it first or use a different name.`);
|
|
300
265
|
}
|
|
301
266
|
fs.cpSync(srcDir, destDir, { recursive: true });
|
|
302
|
-
// Remove memory from imported recipe (local-only)
|
|
303
267
|
const importedMemory = path.join(destDir, "memory");
|
|
304
268
|
if (fs.existsSync(importedMemory)) {
|
|
305
269
|
fs.rmSync(importedMemory, { recursive: true, force: true });
|
|
@@ -327,14 +291,16 @@ export function getProfile() {
|
|
|
327
291
|
const text = readText(profilePath());
|
|
328
292
|
if (!text)
|
|
329
293
|
return null;
|
|
330
|
-
return
|
|
294
|
+
return parseYaml(text);
|
|
331
295
|
}
|
|
332
296
|
export function saveProfile(data) {
|
|
333
297
|
const dir = path.dirname(profilePath());
|
|
334
298
|
if (!fs.existsSync(dir))
|
|
335
299
|
fs.mkdirSync(dir, { recursive: true });
|
|
336
|
-
|
|
337
|
-
|
|
300
|
+
// Merge with existing profile
|
|
301
|
+
const existing = getProfile() ?? {};
|
|
302
|
+
const merged = { ...existing, ...data };
|
|
303
|
+
fs.writeFileSync(profilePath(), YAML.stringify(merged));
|
|
338
304
|
return { path: profilePath() };
|
|
339
305
|
}
|
|
340
306
|
//# sourceMappingURL=recipes.js.map
|
package/dist/recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neuron-inspector",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "64 tools for AI agents. Turn Chrome into an MCP server — inspect DOM, automate clicks, audit security, mock APIs, extract data, record demos, self-improving recipes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
7
7
|
"bin": {
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
],
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
51
|
-
"ws": "^8.18.0"
|
|
51
|
+
"ws": "^8.18.0",
|
|
52
|
+
"yaml": "^2.9.0"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
55
|
"@types/node": "^22.0.0",
|