openfusion-mcp 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.
@@ -0,0 +1,99 @@
1
+ // GET/POST/PUT/DELETE /api/personas — manage the persona set (worker/analysis/synthesis prompt bundles).
2
+ // Personas live in config.json under `personas`; the active persona is set via PUT /api/config
3
+ // (settings.activePersona). Builtins (builtin: true) can be reset to the shipped defaults.
4
+ import { Router } from "express";
5
+ import { loadConfig, saveConfig } from "../../config/store.js";
6
+ import { BUILTIN_PERSONAS, getBuiltin, DEFAULT_PERSONA_ID } from "../../fusion/personas.js";
7
+ /** Ensure the stored persona list includes all builtins (merged on read). */
8
+ function withBuiltins(stored) {
9
+ const storedIds = new Set(stored.map((p) => p.id));
10
+ const merged = [...stored];
11
+ for (const b of BUILTIN_PERSONAS) {
12
+ if (!storedIds.has(b.id))
13
+ merged.push({ ...b });
14
+ }
15
+ return merged;
16
+ }
17
+ export function personasRouter() {
18
+ const r = Router();
19
+ // GET: list all personas (stored + any missing builtins), plus the active id.
20
+ r.get("/", (_req, res) => {
21
+ const config = loadConfig();
22
+ res.json({
23
+ personas: withBuiltins(config.personas ?? []),
24
+ activePersona: config.settings.activePersona ?? DEFAULT_PERSONA_ID,
25
+ });
26
+ });
27
+ // POST: create a new persona (user-defined). Body: full Persona minus builtin.
28
+ r.post("/", (req, res) => {
29
+ const body = req.body ?? {};
30
+ if (!body.name || !body.workerPrompt || !body.analysisPrompt || !body.synthesisPrompt) {
31
+ const e = new Error("name, workerPrompt, analysisPrompt, synthesisPrompt are required");
32
+ e.code = "VALIDATION";
33
+ throw e;
34
+ }
35
+ const config = loadConfig();
36
+ const id = slugify(body.name) + "-" + Math.random().toString(36).slice(2, 7);
37
+ const persona = { id, name: body.name, description: body.description, workerPrompt: body.workerPrompt, analysisPrompt: body.analysisPrompt, synthesisPrompt: body.synthesisPrompt };
38
+ saveConfig({ ...config, personas: [...(config.personas ?? []), persona] });
39
+ res.status(201).json(persona);
40
+ });
41
+ // PUT /:id: update a persona (works for builtins too — marks it user-overridden).
42
+ // Special: PUT /:id with {reset: true} restores a builtin to its shipped default.
43
+ r.put("/:id", (req, res) => {
44
+ const id = req.params.id;
45
+ const config = loadConfig();
46
+ const list = [...(config.personas ?? [])];
47
+ if (req.body?.reset === true) {
48
+ const builtin = getBuiltin(id);
49
+ if (!builtin) {
50
+ res.status(404).json({ error: "NOT_A_BUILTIN", detail: `No builtin persona '${id}' to reset` });
51
+ return;
52
+ }
53
+ // Replace any stored override with a fresh copy of the builtin.
54
+ const without = list.filter((p) => p.id !== id);
55
+ saveConfig({ ...config, personas: [...without, { ...builtin }] });
56
+ res.json({ ...builtin });
57
+ return;
58
+ }
59
+ const body = req.body ?? {};
60
+ const idx = list.findIndex((p) => p.id === id);
61
+ if (idx === -1) {
62
+ res.status(404).json({ error: "NOT_FOUND" });
63
+ return;
64
+ }
65
+ const updated = {
66
+ ...list[idx],
67
+ ...(body.name ? { name: body.name } : {}),
68
+ ...(body.description !== undefined ? { description: body.description } : {}),
69
+ ...(body.workerPrompt ? { workerPrompt: body.workerPrompt } : {}),
70
+ ...(body.analysisPrompt ? { analysisPrompt: body.analysisPrompt } : {}),
71
+ ...(body.synthesisPrompt ? { synthesisPrompt: body.synthesisPrompt } : {}),
72
+ };
73
+ list[idx] = updated;
74
+ saveConfig({ ...config, personas: list });
75
+ res.json(updated);
76
+ });
77
+ // DELETE /:id: remove a persona. Builtins can't be deleted (only reset);
78
+ // the active persona can't be removed (reassign first).
79
+ r.delete("/:id", (req, res) => {
80
+ const id = req.params.id;
81
+ const config = loadConfig();
82
+ if (getBuiltin(id)) {
83
+ res.status(400).json({ error: "CANNOT_DELETE_BUILTIN", detail: "Reset a builtin with PUT /:id {reset:true} instead." });
84
+ return;
85
+ }
86
+ if ((config.settings.activePersona ?? DEFAULT_PERSONA_ID) === id) {
87
+ res.status(400).json({ error: "CANNOT_DELETE_ACTIVE", detail: "Set a different active persona first." });
88
+ return;
89
+ }
90
+ const list = (config.personas ?? []).filter((p) => p.id !== id);
91
+ saveConfig({ ...config, personas: list });
92
+ res.status(204).send();
93
+ });
94
+ return r;
95
+ }
96
+ function slugify(s) {
97
+ return s.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "persona";
98
+ }
99
+ //# sourceMappingURL=personas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personas.js","sourceRoot":"","sources":["../../../src/server/api/personas.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,10 @@ export const fusionInputSchema = {
15
15
  .string()
16
16
  .optional()
17
17
  .describe("Optional background context, prior reasoning, or tool results the client has already gathered. Included with the prompt for each candidate. OpenFusion does not gather information itself."),
18
+ persona: z
19
+ .string()
20
+ .optional()
21
+ .describe("Persona id or name to use for this fusion (e.g. 'qa', 'researcher', 'pm'). A persona bundles the worker + analysis + synthesis system prompts. Defaults to the active persona set in the dashboard ('generalist' unless changed)."),
18
22
  };
19
23
  /** The fusion tool handler, extracted so tests can call it with a mocked extra. */
20
24
  export async function fusionToolHandler(args, extra, deps) {
@@ -23,6 +27,7 @@ export async function fusionToolHandler(args, extra, deps) {
23
27
  const result = await runFusion({
24
28
  prompt: args.prompt,
25
29
  context: args.context,
30
+ persona: args.persona,
26
31
  config,
27
32
  db: deps.db,
28
33
  onProgress: report,
@@ -48,7 +53,7 @@ export async function createMcpServer(options = {}) {
48
53
  ensureHome(); // make sure ~/.openfusion exists before opening the DB
49
54
  const db = options.db ?? openDatabase(paths.db());
50
55
  // Tool: fusion — fan-out + two-step judge.
51
- server.tool("fusion", "Fan a prompt out to 2-5 candidate models, run a two-step judge (analysis then synthesis), and return one consolidated answer. Slower and costlier than a single model call (2-3x). Use for complex reasoning, deep research, cross-model verification, or high-stakes answers where consensus adds value. Do NOT use for routine lookups, single-turn Q&A, or trivial tasks. OpenFusion does not call tools — provide the prompt and any gathered context yourself.", fusionInputSchema, async (args, extra) => fusionToolHandler(args, extra, { db, openBrowserOnNeedsConfig: options.openBrowserOnNeedsConfig }));
56
+ server.tool("fusion", "Fan a prompt out to 2-5 candidate models, run a two-step judge (analysis then synthesis), and return one consolidated answer. Slower and costlier than a single model call (2-3x). Use for complex reasoning, deep research, cross-model verification, or high-stakes answers where consensus adds value. Do NOT use for routine lookups, single-turn Q&A, or trivial tasks. OpenFusion does not call tools — provide the prompt and any gathered context yourself. Optional 'persona' (e.g. 'qa', 'researcher', 'pm') tailors the worker + judge prompts to the task; defaults to the active persona in the dashboard.", fusionInputSchema, async (args, extra) => fusionToolHandler(args, extra, { db, openBrowserOnNeedsConfig: options.openBrowserOnNeedsConfig }));
52
57
  // Tool: open_dashboard — pop the config/stats UI in a browser.
53
58
  server.tool("open_dashboard", "Open the OpenFusion configuration and usage dashboard in the user's browser (http://localhost:9077). Use when the user needs to configure candidates/judge/API keys or view usage stats.", {}, async () => openDashboardToolHandler());
54
59
  return server;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { testRouter } from "./api/test.js";
13
13
  import { statsRouter } from "./api/stats.js";
14
14
  import { activityRouter } from "./api/activity.js";
15
15
  import { statusRouter } from "./api/status.js";
16
+ import { personasRouter } from "./api/personas.js";
16
17
  import { loadConfig } from "../config/store.js";
17
18
  import { isConfigured } from "../config/completeness.js";
18
19
  import { VERSION } from "../util/version.js";
@@ -38,6 +39,7 @@ export async function startUiServer(options = {}) {
38
39
  app.use("/api/stats", statsRouter(db));
39
40
  app.use("/api/activity", activityRouter(db));
40
41
  app.use("/api/status", statusRouter());
42
+ app.use("/api/personas", personasRouter());
41
43
  // /api/health is a liveness ping (kept stable for back-compat) but now carries
42
44
  // version + configured so a single call tells you both "is it up" and "is it ready".
43
45
  app.get("/api/health", (_req, res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-server.js","sourceRoot":"","sources":["../../src/server/ui-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-server.js","sourceRoot":"","sources":["../../src/server/ui-server.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ const insertActivity = (db) => db.prepare(`
4
4
  INSERT INTO activities
5
5
  (id, created_at, prompt_excerpt, has_context, candidate_count, survivor_count,
6
6
  judge_provider, judge_model, total_input_tokens, total_output_tokens,
7
- total_cost, total_latency_ms, status, error)
7
+ total_cost, total_latency_ms, status, error, persona)
8
8
  VALUES (@id, @created_at, @prompt_excerpt, @has_context, @candidate_count, @survivor_count,
9
9
  @judge_provider, @judge_model, @total_input_tokens, @total_output_tokens,
10
- @total_cost, @total_latency_ms, @status, @error)
10
+ @total_cost, @total_latency_ms, @status, @error, @persona)
11
11
  `);
12
12
  export function recordActivity(db, row) {
13
13
  const id = row.id ?? randomUUID();
@@ -26,6 +26,7 @@ export function recordActivity(db, row) {
26
26
  total_latency_ms: row.total_latency_ms ?? 0,
27
27
  status: row.status,
28
28
  error: row.error ?? null,
29
+ persona: row.persona ?? null,
29
30
  });
30
31
  return id;
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/store/activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/store/activity.ts"],"names":[],"mappings":"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"}
package/dist/store/db.js CHANGED
@@ -76,6 +76,12 @@ const MIGRATIONS = [
76
76
  ALTER TABLE sub_calls ADD COLUMN analysis_json TEXT;
77
77
  `,
78
78
  },
79
+ {
80
+ id: "003_add_persona",
81
+ sql: `
82
+ ALTER TABLE activities ADD COLUMN persona TEXT;
83
+ `,
84
+ },
79
85
  ];
80
86
  function migrate(db) {
81
87
  db.exec(`
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,8DAA8D;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,gFAAgF;AAChF,uEAAuE;AACvE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,8DAA8D;QAC9D,OAAO,OAAO,CAAC,gBAAgB,CAAiB,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,iEAAiE;YAC/D,wDAAwD;YACxD,yGAAyG;YACzG,8GAA8G,CACjH,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AACD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;AAEpC,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,GAAkC;IAChD;QACE,EAAE,EAAE,aAAa;QACjB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCJ;KACF;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE;;;KAGJ;KACF;CACF,CAAC;AAEF,SAAS,OAAO,CAAC,EAAM;IACrB,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,GAAG,CACpB,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5F,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;IAC1F,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,8DAA8D;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,gFAAgF;AAChF,uEAAuE;AACvE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,8DAA8D;QAC9D,OAAO,OAAO,CAAC,gBAAgB,CAAiB,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,iEAAiE;YAC/D,wDAAwD;YACxD,yGAAyG;YACzG,8GAA8G,CACjH,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AACD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;AAEpC,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,GAAkC;IAChD;QACE,EAAE,EAAE,aAAa;QACjB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCJ;KACF;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE;;;KAGJ;KACF;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,GAAG,EAAE;;KAEJ;KACF;CACF,CAAC;AAEF,SAAS,OAAO,CAAC,EAAM;IACrB,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,GAAG,CACpB,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5F,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;IAC1F,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfusion-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Local MCP server implementing OpenRouter's Fusion panel architecture: fan-out + two-step judge.",
5
5
  "license": "MIT",
6
6
  "author": "Hashan Wickramasinghe",