@minicor/mcp-server 4.13.0 → 4.15.0
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/README.md +0 -12
- package/dist/__tests__/agent-harness-tools.test.js +26 -2
- package/dist/__tests__/agent-harness-tools.test.js.map +1 -1
- package/dist/__tests__/http-server.test.js +47 -0
- package/dist/__tests__/http-server.test.js.map +1 -1
- package/dist/__tests__/pipelines-tools.test.d.ts +2 -0
- package/dist/__tests__/pipelines-tools.test.d.ts.map +1 -0
- package/dist/__tests__/pipelines-tools.test.js +109 -0
- package/dist/__tests__/pipelines-tools.test.js.map +1 -0
- package/dist/__tests__/server-surface.test.js +35 -1
- package/dist/__tests__/server-surface.test.js.map +1 -1
- package/dist/agent-service-client.d.ts +10 -0
- package/dist/agent-service-client.d.ts.map +1 -1
- package/dist/agent-service-client.js +28 -0
- package/dist/agent-service-client.js.map +1 -1
- package/dist/http-oauth.d.ts +7 -0
- package/dist/http-oauth.d.ts.map +1 -1
- package/dist/http-oauth.js +4 -3
- package/dist/http-oauth.js.map +1 -1
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +28 -0
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/internal-console-client.d.ts +41 -0
- package/dist/internal-console-client.d.ts.map +1 -0
- package/dist/internal-console-client.js +73 -0
- package/dist/internal-console-client.js.map +1 -0
- package/dist/lib.d.ts +7 -0
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +3 -2
- package/dist/lib.js.map +1 -1
- package/dist/middleware-service-client.d.ts +10 -1
- package/dist/middleware-service-client.d.ts.map +1 -1
- package/dist/middleware-service-client.js +13 -4
- package/dist/middleware-service-client.js.map +1 -1
- package/dist/server-surface.d.ts +11 -1
- package/dist/server-surface.d.ts.map +1 -1
- package/dist/server-surface.js +25 -4
- package/dist/server-surface.js.map +1 -1
- package/dist/staff.d.ts +8 -0
- package/dist/staff.d.ts.map +1 -0
- package/dist/staff.js +13 -0
- package/dist/staff.js.map +1 -0
- package/dist/tools/agent-harness.d.ts.map +1 -1
- package/dist/tools/agent-harness.js +8 -0
- package/dist/tools/agent-harness.js.map +1 -1
- package/dist/tools/pipelines.d.ts +26 -0
- package/dist/tools/pipelines.d.ts.map +1 -0
- package/dist/tools/pipelines.js +159 -0
- package/dist/tools/pipelines.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pipeline console (staff): read, version, and debug the BUILD PIPELINE
|
|
3
|
+
* ITSELF — the template DAG that blueprint_build orchestrates — plus the
|
|
4
|
+
* cross-workspace build-run reads behind the staff console.
|
|
5
|
+
*
|
|
6
|
+
* Two gates, both enforced here before any middleware call:
|
|
7
|
+
* 1. Staff email — the same predicate the platform's staff surfaces use
|
|
8
|
+
* (frontend isInternalStaffEmail / agent-service isStaffEmail): the
|
|
9
|
+
* signed-in user's /auth/me email must end @laminar.run or @minicor.com.
|
|
10
|
+
* No identity fails closed. Non-staff get a clean permission error, never
|
|
11
|
+
* a middleware 401.
|
|
12
|
+
* 2. The M2M key — `MIDDLEWARE_INTERNAL_CONSOLE_KEY` (the middleware-service
|
|
13
|
+
* `INTERNAL_CONSOLE_KEY`) must be set on this MCP server; unset means the
|
|
14
|
+
* tools report "not configured" instead of failing downstream.
|
|
15
|
+
*
|
|
16
|
+
* The improve/debug loop these tools teach:
|
|
17
|
+
* pipeline_template_get -> clone + modify the graph -> pipeline_template_put
|
|
18
|
+
* (insert-only version head+1; schema 400 / lint 422 bodies return verbatim)
|
|
19
|
+
* -> NEW builds snapshot the head -> pipeline_builds / pipeline_build_get
|
|
20
|
+
* (DAG, per-node status, per-stage agent run ids) -> agent_thread into a
|
|
21
|
+
* failing stage's run -> pipeline_build_trace full=true for the whole log.
|
|
22
|
+
*/
|
|
23
|
+
import { z } from "zod";
|
|
24
|
+
import { safe } from "../helpers.js";
|
|
25
|
+
import { INTERNAL_CONSOLE_KEY_ENV, InternalConsoleClient, } from "../internal-console-client.js";
|
|
26
|
+
import { MiddlewareServiceClient } from "../middleware-service-client.js";
|
|
27
|
+
import { isStaffEmail } from "../staff.js";
|
|
28
|
+
export { isStaffEmail } from "../staff.js";
|
|
29
|
+
const regionParam = z
|
|
30
|
+
.enum(["us", "ca"])
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Region (us or ca). Defaults to us — templates and builds are per-region.");
|
|
33
|
+
/** Server naming rule for saved templates (the built-in `default` is read-only). */
|
|
34
|
+
const TEMPLATE_NAME = /^[a-z][a-z0-9-]{1,63}$/;
|
|
35
|
+
export function register(deps) {
|
|
36
|
+
const { server } = deps;
|
|
37
|
+
/** Resolve + assert the caller's staff identity BEFORE touching the M2M realm. */
|
|
38
|
+
async function requireStaff(region) {
|
|
39
|
+
let email;
|
|
40
|
+
try {
|
|
41
|
+
email = (await deps.client(region).getMe())?.email;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// No resolvable identity — fall through to the closed gate.
|
|
45
|
+
}
|
|
46
|
+
if (!isStaffEmail(email)) {
|
|
47
|
+
throw new Error("Permission denied: the pipeline console tools are staff-only (the signed-in account's email must end @laminar.run or @minicor.com).");
|
|
48
|
+
}
|
|
49
|
+
return email;
|
|
50
|
+
}
|
|
51
|
+
function internalClient(region) {
|
|
52
|
+
const key = process.env[INTERNAL_CONSOLE_KEY_ENV];
|
|
53
|
+
if (!key) {
|
|
54
|
+
throw new Error(`Pipeline console not configured: set ${INTERNAL_CONSOLE_KEY_ENV} (the middleware-service INTERNAL_CONSOLE_KEY M2M key) on this MCP server.`);
|
|
55
|
+
}
|
|
56
|
+
return new InternalConsoleClient(deps.getApiBase(region), key);
|
|
57
|
+
}
|
|
58
|
+
/** Both gates in order: staff first (clean permission error), then key config. */
|
|
59
|
+
async function gated(region) {
|
|
60
|
+
const email = await requireStaff(region);
|
|
61
|
+
return { email, client: internalClient(region) };
|
|
62
|
+
}
|
|
63
|
+
server.tool("pipeline_template_list", "List pipeline templates (staff): the head version of every named template plus the built-in 'default' (a code constant, version 0). A template is the build-pipeline DAG that blueprint_build snapshots when a build starts. The improve loop: pipeline_template_get -> clone/modify the graph -> pipeline_template_put (new version) -> new builds pick it up -> watch pipeline_builds.", { region: regionParam }, async ({ region }) => safe(async () => (await gated(region)).client.listTemplates()));
|
|
64
|
+
server.tool("pipeline_template_get", "Read one pipeline template (staff). Pass version for that exact immutable row; omit it for the head graph plus the version history. Clone the returned graph as the starting point for pipeline_template_put — rows are insert-only, so a save creates head+1 rather than mutating. The built-in 'default' has no version history (it is code, not rows).", {
|
|
65
|
+
name: z.string().min(1).describe("Template name (e.g. 'default' or a saved template)"),
|
|
66
|
+
version: z.number().int().positive().optional().describe("Exact version; omit for head + history"),
|
|
67
|
+
region: regionParam,
|
|
68
|
+
}, async ({ name, version, region }) => safe(async () => {
|
|
69
|
+
const { client } = await gated(region);
|
|
70
|
+
if (version !== undefined)
|
|
71
|
+
return client.getTemplateVersion(name, version);
|
|
72
|
+
const { templates } = await client.listTemplates();
|
|
73
|
+
const template = templates.find((t) => t.name === name);
|
|
74
|
+
if (!template) {
|
|
75
|
+
throw new Error(`No template named "${name}". Available: ${templates.map((t) => t.name).join(", ")}`);
|
|
76
|
+
}
|
|
77
|
+
if (template.builtIn)
|
|
78
|
+
return { template, versions: [] };
|
|
79
|
+
const { versions } = await client.listTemplateVersions(name);
|
|
80
|
+
return { template, versions };
|
|
81
|
+
}));
|
|
82
|
+
server.tool("pipeline_template_put", "Save a pipeline template graph (staff): inserts version head+1 under `name` (rows are immutable; 'default' is reserved — save under a new name to fork it). The server validates the graph schema (400) and lints the DAG (422); both error bodies return VERBATIM so you can fix the listed issues and re-put to iterate. Running builds keep their snapshot; only builds started after the save use the new head.", {
|
|
83
|
+
name: z
|
|
84
|
+
.string()
|
|
85
|
+
.regex(TEMPLATE_NAME, "name must match ^[a-z][a-z0-9-]{1,63}$")
|
|
86
|
+
.describe("Template name (lowercase, digits, hyphens; 'default' is reserved)"),
|
|
87
|
+
graph: z
|
|
88
|
+
.record(z.string(), z.unknown())
|
|
89
|
+
.describe("The full pipeline graph JSON (clone one from pipeline_template_get and modify)"),
|
|
90
|
+
region: regionParam,
|
|
91
|
+
}, async ({ name, graph, region }) => safe(async () => {
|
|
92
|
+
const { email, client } = await gated(region);
|
|
93
|
+
return client.putTemplate(name, graph, email);
|
|
94
|
+
}));
|
|
95
|
+
server.tool("pipeline_builds", "Recent orchestrated pipeline builds across ALL workspaces (staff, newest first). Each row: status, stage (framing|populating|testing|supervising|awaiting_publish|blocked|failed), template {name, version}, driver, failureReason, and the build's coordinates (workspaceId/middlewareId/routeId). workspaceId/status filters apply after the bounded fetch. Drill into one with pipeline_build_get.", {
|
|
96
|
+
limit: z.number().int().min(1).max(100).default(30).describe("Max builds to return (server-bounded to 100)"),
|
|
97
|
+
workspaceId: z.number().optional().describe("Only builds in this workspace"),
|
|
98
|
+
status: z.string().optional().describe("Only builds with this status (e.g. running, failed, needs_input, green)"),
|
|
99
|
+
region: regionParam,
|
|
100
|
+
}, async ({ limit, workspaceId, status, region }) => safe(async () => {
|
|
101
|
+
const { client } = await gated(region);
|
|
102
|
+
// Filters are client-side (the endpoint only bounds by limit), so
|
|
103
|
+
// widen the fetch to the server cap when filtering.
|
|
104
|
+
const { builds } = await client.listBuildRuns(workspaceId || status ? 100 : limit);
|
|
105
|
+
const filtered = builds
|
|
106
|
+
.filter((b) => workspaceId === undefined || b.workspaceId === workspaceId)
|
|
107
|
+
.filter((b) => status === undefined || b.status === status || b.stage === status);
|
|
108
|
+
return { builds: filtered.slice(0, limit), scanned: builds.length };
|
|
109
|
+
}));
|
|
110
|
+
server.tool("pipeline_build_get", "One pipeline build's full picture (staff): status, stage, the DAG with per-node statuses, per-stage agent run ids (runRefs.framing/populating/supervising), populate/tests progress, failureReason, and a bounded trace tail. Debug loop: a failing stage -> agent_thread with its runRef to read the responsible engine run; template {name, version} -> pipeline_template_get to inspect the graph version that drove this build; pipeline_build_trace full=true for the untruncated event log.", {
|
|
111
|
+
buildId: z.string().uuid().describe("Build run id (from pipeline_builds or blueprint_build)"),
|
|
112
|
+
region: regionParam,
|
|
113
|
+
}, async ({ buildId, region }) => safe(async () => {
|
|
114
|
+
const r = region;
|
|
115
|
+
const { client } = await gated(r);
|
|
116
|
+
const pipeline = await client.getBuildRunPipeline(buildId);
|
|
117
|
+
// The trace lives on the workspace bearer realm — best-effort tail so
|
|
118
|
+
// the DAG read stays useful when staff lack membership there.
|
|
119
|
+
try {
|
|
120
|
+
const bearer = new MiddlewareServiceClient(deps.getApiBase(r), deps.getAuthToken?.(r) || "");
|
|
121
|
+
const run = await bearer.getBuildRun(pipeline.workspaceId, pipeline.middlewareId, pipeline.routeId, buildId);
|
|
122
|
+
return { ...pipeline, trace: run.trace ?? null, traceCount: run.traceCount ?? null };
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
return { ...pipeline, trace: null, traceNote: `trace unavailable via the workspace realm: ${e.message}` };
|
|
126
|
+
}
|
|
127
|
+
}));
|
|
128
|
+
server.tool("pipeline_build_trace", "A pipeline build's build-trace (staff): the chronological event log the pipeline emitted (stage transitions, agent dispatches, test results, errors). Default returns the bounded tail with traceCount carrying the total; full=true fetches the untruncated log (?full=1 — can be large, use it when the tail cuts off the failure). Coordinates resolve automatically from the buildId; chain into agent_thread with the run ids the events reference.", {
|
|
129
|
+
buildId: z.string().uuid().describe("Build run id"),
|
|
130
|
+
full: z.boolean().default(false).describe("true = the untruncated trace (large); false = bounded tail"),
|
|
131
|
+
region: regionParam,
|
|
132
|
+
}, async ({ buildId, full, region }) => safe(async () => {
|
|
133
|
+
const r = region;
|
|
134
|
+
const { client } = await gated(r);
|
|
135
|
+
const { workspaceId, middlewareId, routeId, status, stage } = await client.getBuildRunPipeline(buildId);
|
|
136
|
+
// The trace endpoint lives on the workspace bearer realm only (no
|
|
137
|
+
// /internal equivalent yet), so this read additionally needs the
|
|
138
|
+
// caller to have access to the build's workspace.
|
|
139
|
+
const bearer = new MiddlewareServiceClient(deps.getApiBase(r), deps.getAuthToken?.(r) || "");
|
|
140
|
+
let run;
|
|
141
|
+
try {
|
|
142
|
+
run = await bearer.getBuildRun(workspaceId, middlewareId, routeId, buildId, { full });
|
|
143
|
+
}
|
|
144
|
+
catch (e) {
|
|
145
|
+
// Only auth failures are a membership problem; anything else
|
|
146
|
+
// (network, 5xx) surfaces untouched.
|
|
147
|
+
if (e?.status !== 401 && e?.status !== 403)
|
|
148
|
+
throw e;
|
|
149
|
+
throw new Error(`The build trace is served from workspace ${workspaceId}'s realm and your account could not read it (${e.message}). Join that workspace to read the trace; pipeline_build_get still returns the DAG, stage statuses, and agent run ids without it.`);
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
buildId, workspaceId, status, stage,
|
|
153
|
+
traceCount: run.traceCount ?? null,
|
|
154
|
+
full,
|
|
155
|
+
trace: run.trace ?? [],
|
|
156
|
+
};
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=pipelines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../../src/tools/pipelines.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@minicor/mcp-server",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.15.0",
|
|
4
4
|
"description": "Desktop and browser RPA automation, workflow management, and AI-powered debugging for the Minicor platform. Formerly Laminar.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/lib.js",
|