sequentum-mcp 1.1.4 → 1.2.2

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +104 -3
  3. package/dist/{api-client.d.ts → api/api-client.d.ts} +106 -4
  4. package/dist/api/api-client.d.ts.map +1 -0
  5. package/dist/{api-client.js → api/api-client.js} +345 -99
  6. package/dist/api/api-client.js.map +1 -0
  7. package/dist/{types.d.ts → api/types.d.ts} +122 -12
  8. package/dist/api/types.d.ts.map +1 -0
  9. package/dist/{types.js → api/types.js} +57 -0
  10. package/dist/api/types.js.map +1 -0
  11. package/dist/index.js +11 -1737
  12. package/dist/index.js.map +1 -1
  13. package/dist/server/cors.d.ts +33 -0
  14. package/dist/server/cors.d.ts.map +1 -0
  15. package/dist/server/cors.js +72 -0
  16. package/dist/server/cors.js.map +1 -0
  17. package/dist/server/handlers.d.ts +49 -0
  18. package/dist/server/handlers.d.ts.map +1 -0
  19. package/dist/server/handlers.js +1031 -0
  20. package/dist/server/handlers.js.map +1 -0
  21. package/dist/server/http-server.d.ts +13 -0
  22. package/dist/server/http-server.d.ts.map +1 -0
  23. package/dist/server/http-server.js +393 -0
  24. package/dist/server/http-server.js.map +1 -0
  25. package/dist/server/policies.d.ts +19 -0
  26. package/dist/server/policies.d.ts.map +1 -0
  27. package/dist/server/policies.js +32 -0
  28. package/dist/server/policies.js.map +1 -0
  29. package/dist/server/prompts.d.ts +19 -0
  30. package/dist/server/prompts.d.ts.map +1 -0
  31. package/dist/server/prompts.js +464 -0
  32. package/dist/server/prompts.js.map +1 -0
  33. package/dist/server/resources.d.ts +26 -0
  34. package/dist/server/resources.d.ts.map +1 -0
  35. package/dist/server/resources.js +348 -0
  36. package/dist/server/resources.js.map +1 -0
  37. package/dist/server/tools.d.ts +9 -0
  38. package/dist/server/tools.d.ts.map +1 -0
  39. package/dist/server/tools.js +977 -0
  40. package/dist/server/tools.js.map +1 -0
  41. package/dist/utils/oauth-metadata.d.ts.map +1 -0
  42. package/dist/utils/oauth-metadata.js.map +1 -0
  43. package/dist/{validation.d.ts → utils/validation.d.ts} +25 -2
  44. package/dist/utils/validation.d.ts.map +1 -0
  45. package/dist/{validation.js → utils/validation.js} +43 -3
  46. package/dist/utils/validation.js.map +1 -0
  47. package/docs/prompts-reference.md +370 -0
  48. package/docs/resources-reference.md +300 -0
  49. package/docs/tool-reference.md +244 -2
  50. package/package.json +4 -3
  51. package/dist/api-client.d.ts.map +0 -1
  52. package/dist/api-client.js.map +0 -1
  53. package/dist/oauth-metadata.d.ts.map +0 -1
  54. package/dist/oauth-metadata.js.map +0 -1
  55. package/dist/types.d.ts.map +0 -1
  56. package/dist/types.js.map +0 -1
  57. package/dist/validation.d.ts.map +0 -1
  58. package/dist/validation.js.map +0 -1
  59. /package/dist/{oauth-metadata.d.ts → utils/oauth-metadata.d.ts} +0 -0
  60. /package/dist/{oauth-metadata.js → utils/oauth-metadata.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * HTTP Server for Sequentum MCP
3
+ *
4
+ * Implements the Streamable HTTP transport for Claude Connectors.
5
+ * Handles session management, OAuth2 discovery, rate limiting, and graceful shutdown.
6
+ */
7
+ /**
8
+ * Start the MCP server in HTTP mode (for Claude Connectors)
9
+ * Uses Streamable HTTP transport as required by Claude Connectors Directory
10
+ * Creates a new Server instance per session for proper isolation.
11
+ */
12
+ export declare function startHttpServer(apiBaseUrl: string, version: string, httpPort: number, httpHost: string): Promise<void>;
13
+ //# sourceMappingURL=http-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/server/http-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoCH;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA+Zf"}
@@ -0,0 +1,393 @@
1
+ /**
2
+ * HTTP Server for Sequentum MCP
3
+ *
4
+ * Implements the Streamable HTTP transport for Claude Connectors.
5
+ * Handles session management, OAuth2 discovery, rate limiting, and graceful shutdown.
6
+ */
7
+ import { randomUUID } from "crypto";
8
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
9
+ import express from "express";
10
+ import rateLimit from "express-rate-limit";
11
+ import { SequentumApiClient } from "../api/api-client.js";
12
+ import { createMcpServer } from "./handlers.js";
13
+ import { buildOAuthMetadata, SUPPORTED_SCOPES } from "../utils/oauth-metadata.js";
14
+ import { buildAllowedOrigins, isAllowedOrigin } from "./cors.js";
15
+ const DEBUG = process.env.DEBUG === '1';
16
+ /**
17
+ * Extract Bearer token from the Authorization header, or return null.
18
+ */
19
+ function extractBearerToken(req) {
20
+ const authHeader = req.headers.authorization;
21
+ if (authHeader && authHeader.startsWith("Bearer ")) {
22
+ return authHeader.substring(7);
23
+ }
24
+ return null;
25
+ }
26
+ /**
27
+ * Start the MCP server in HTTP mode (for Claude Connectors)
28
+ * Uses Streamable HTTP transport as required by Claude Connectors Directory
29
+ * Creates a new Server instance per session for proper isolation.
30
+ */
31
+ export async function startHttpServer(apiBaseUrl, version, httpPort, httpHost) {
32
+ const app = express();
33
+ // Trust X-Forwarded-Proto from reverse proxies (cloudflared, ngrok, etc.)
34
+ // This ensures req.protocol returns 'https' when behind a TLS-terminating proxy
35
+ // WARNING: Only safe if direct access to this server is blocked at the network level
36
+ app.set('trust proxy', process.env.TRUST_PROXY !== 'false');
37
+ // Parse JSON bodies
38
+ app.use(express.json());
39
+ const ALLOWED_ORIGINS = buildAllowedOrigins(process.env, DEBUG);
40
+ // CORS middleware - required for browser-based clients like MCP Inspector.
41
+ // Reflects allowlisted origins; blocks /mcp requests from non-allowlisted browser origins.
42
+ app.use((req, res, next) => {
43
+ // We consult the Origin header on every request to decide what CORS headers
44
+ // to set, so every response varies by Origin. Setting Vary unconditionally
45
+ // prevents intermediate caches (CDN, proxy) from serving a response cached
46
+ // for one origin to a different origin. res.vary() appends and dedupes, so
47
+ // it is safe even if another middleware also sets Vary.
48
+ res.vary("Origin");
49
+ const origin = req.headers.origin;
50
+ if (origin) {
51
+ if (isAllowedOrigin(origin, ALLOWED_ORIGINS)) {
52
+ res.setHeader("Access-Control-Allow-Origin", origin);
53
+ }
54
+ else if ((req.path === "/mcp" || req.path.startsWith("/mcp/")) && req.method !== "OPTIONS") {
55
+ // Reject MCP requests from non-allowlisted browser origins.
56
+ // OPTIONS preflights are handled below (browser will block the actual request).
57
+ res.status(403).json({
58
+ jsonrpc: "2.0",
59
+ error: { code: -32000, message: "Forbidden: origin not allowed" },
60
+ id: null,
61
+ });
62
+ return;
63
+ }
64
+ }
65
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
66
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, Authorization, mcp-session-id");
67
+ res.setHeader("Access-Control-Expose-Headers", "mcp-session-id");
68
+ // Handle preflight requests
69
+ if (req.method === "OPTIONS") {
70
+ res.status(204).end();
71
+ return;
72
+ }
73
+ next();
74
+ });
75
+ // Rate limiting middleware — protects the MCP server from being flooded.
76
+ // Applied to /mcp endpoints only (health, well-known are not rate-limited).
77
+ const mcpRateLimiter = rateLimit({
78
+ windowMs: 60 * 1000, // 1-minute window
79
+ max: 100, // max 100 requests per window per IP
80
+ standardHeaders: true, // Return rate limit info in RateLimit-* headers
81
+ legacyHeaders: false,
82
+ message: {
83
+ jsonrpc: "2.0",
84
+ error: { code: -32029, message: "Too many requests. Please slow down." },
85
+ id: null,
86
+ },
87
+ });
88
+ app.use("/mcp", mcpRateLimiter);
89
+ // Store sessions by session ID - each session has its own server, transport, and API client
90
+ const sessions = new Map();
91
+ // Maximum number of concurrent sessions to prevent memory exhaustion
92
+ const MAX_SESSIONS = parseInt(process.env.MAX_SESSIONS || "1000", 10);
93
+ // Tracks sessions being created (between capacity check and sessions.set()).
94
+ // Prevents concurrent requests from all passing the check before any session is stored.
95
+ let pendingSessions = 0;
96
+ // Clean up stale sessions every 15 minutes
97
+ // Sessions are removed if they haven't had activity in over 1 hour
98
+ const SESSION_MAX_AGE_MS = 60 * 60 * 1000; // 1 hour
99
+ const SESSION_CLEANUP_INTERVAL_MS = 15 * 60 * 1000; // 15 minutes
100
+ const cleanupIntervalId = setInterval(() => {
101
+ const now = Date.now();
102
+ let cleanedCount = 0;
103
+ for (const [sessionId, session] of sessions) {
104
+ if (now - session.lastActivityAt > SESSION_MAX_AGE_MS) {
105
+ sessions.delete(sessionId);
106
+ cleanedCount++;
107
+ }
108
+ }
109
+ if (cleanedCount > 0 || DEBUG) {
110
+ console.error(`[MCP] Session cleanup: removed ${cleanedCount} stale sessions, ${sessions.size} active`);
111
+ }
112
+ }, SESSION_CLEANUP_INTERVAL_MS);
113
+ cleanupIntervalId.unref();
114
+ /**
115
+ * Create a new HTTP session with MCP server, transport, and API client
116
+ */
117
+ async function createSession(token) {
118
+ const sessionApiClient = new SequentumApiClient(apiBaseUrl, null);
119
+ if (token) {
120
+ sessionApiClient.setAccessToken(token);
121
+ }
122
+ const server = createMcpServer(sessionApiClient, version);
123
+ const transport = new StreamableHTTPServerTransport({
124
+ sessionIdGenerator: () => randomUUID(),
125
+ });
126
+ await server.connect(transport);
127
+ const now = Date.now();
128
+ return {
129
+ server,
130
+ transport,
131
+ apiClient: sessionApiClient,
132
+ createdAt: now,
133
+ lastActivityAt: now
134
+ };
135
+ }
136
+ // Health check endpoint
137
+ app.get("/health", (_req, res) => {
138
+ res.json({ status: "ok", version, transport: "streamable-http" });
139
+ });
140
+ // OAuth2 Authorization Server Metadata (RFC 8414)
141
+ // This enables MCP clients to discover OAuth2 endpoints automatically
142
+ // OAuth URLs are derived from the API base URL (same server hosts both API and OAuth)
143
+ // RFC 8414 standard path - Authorization Server Metadata
144
+ app.get("/.well-known/oauth-authorization-server", (_req, res) => {
145
+ const metadata = buildOAuthMetadata(apiBaseUrl);
146
+ res.json(metadata);
147
+ });
148
+ // RFC 9728 - Protected Resource Metadata (required by MCP spec 2025-06-18)
149
+ // This tells MCP clients which authorization server to use for this resource.
150
+ // Per MCP spec, the resource MUST be the MCP server's own canonical URL,
151
+ // as MCP clients compute the expected resource from the URL they connect to.
152
+ app.get("/.well-known/oauth-protected-resource", async (req, res) => {
153
+ // The resource is this MCP server's own URL (origin)
154
+ // MCP clients (e.g., Cursor) validate this matches the URL they connected to
155
+ const resourceUrl = new URL(`${req.protocol}://${req.get("host")}`).origin;
156
+ const protectedResourceMetadata = {
157
+ // The canonical URI of this MCP server (the protected resource)
158
+ resource: resourceUrl,
159
+ // Authorization servers that can issue tokens for this resource
160
+ authorization_servers: [apiBaseUrl],
161
+ // Scopes supported by this resource
162
+ scopes_supported: [...SUPPORTED_SCOPES],
163
+ // Bearer token is required
164
+ bearer_methods_supported: ["header"],
165
+ };
166
+ res.json(protectedResourceMetadata);
167
+ });
168
+ // Log incoming requests for debugging (only when DEBUG is enabled)
169
+ if (DEBUG) {
170
+ app.use("/mcp", (req, _res, next) => {
171
+ console.error(`[MCP] ${req.method} ${req.url}`);
172
+ // Redact sensitive headers before logging
173
+ const safeHeaders = { ...req.headers };
174
+ const sensitiveHeaders = ['authorization', 'cookie', 'x-api-key'];
175
+ for (const header of sensitiveHeaders) {
176
+ if (safeHeaders[header]) {
177
+ safeHeaders[header] = '[REDACTED]';
178
+ }
179
+ }
180
+ console.error(`[MCP] Headers: ${JSON.stringify(safeHeaders)}`);
181
+ if (req.body && Object.keys(req.body).length > 0) {
182
+ console.error(`[MCP] Body: ${JSON.stringify(req.body)}`);
183
+ }
184
+ next();
185
+ });
186
+ }
187
+ // Handle POST requests for client-to-server messages
188
+ app.post("/mcp", async (req, res) => {
189
+ try {
190
+ // Get session ID from header
191
+ const sessionId = req.headers["mcp-session-id"];
192
+ let session;
193
+ if (sessionId) {
194
+ session = sessions.get(sessionId);
195
+ }
196
+ // If no existing session, create a new one
197
+ if (!session) {
198
+ const token = extractBearerToken(req);
199
+ if (DEBUG && token) {
200
+ console.error("[DEBUG] Bearer token received for new session");
201
+ }
202
+ // Require authentication for new sessions (unless REQUIRE_AUTH=false for testing)
203
+ const requireAuth = process.env.REQUIRE_AUTH !== "false";
204
+ if (requireAuth && !token) {
205
+ // Return 401 with WWW-Authenticate header per RFC 9728 Section 5.1
206
+ // The resource is this MCP server's own URL (the protected resource)
207
+ const mcpServerUrl = new URL(`${req.protocol}://${req.get("host")}`).origin;
208
+ const wwwAuth = `Bearer resource="${mcpServerUrl}"`;
209
+ const prmUrl = `${mcpServerUrl}/.well-known/oauth-protected-resource`;
210
+ res.setHeader("WWW-Authenticate", wwwAuth);
211
+ const responseBody = {
212
+ jsonrpc: "2.0",
213
+ error: {
214
+ code: -32001,
215
+ message: "Authentication required",
216
+ data: {
217
+ // Point to Protected Resource Metadata on this MCP server
218
+ protectedResourceMetadata: prmUrl,
219
+ },
220
+ },
221
+ id: null,
222
+ };
223
+ res.status(401).json(responseBody);
224
+ console.error("[MCP] 401 - Authentication required, no Bearer token provided");
225
+ return;
226
+ }
227
+ // Reject if at session capacity to prevent memory exhaustion.
228
+ // pendingSessions counts sessions being created but not yet stored, so
229
+ // concurrent requests all see the updated count before any await completes.
230
+ if (sessions.size + pendingSessions >= MAX_SESSIONS) {
231
+ res.status(503).json({
232
+ jsonrpc: "2.0",
233
+ error: { code: -32000, message: "Server at capacity. Please try again later." },
234
+ id: null,
235
+ });
236
+ console.error(`[MCP] 503 - Session limit reached (${MAX_SESSIONS}), rejecting new session`);
237
+ return;
238
+ }
239
+ // Reserve a slot before the first await so concurrent requests see it.
240
+ pendingSessions++;
241
+ try {
242
+ session = await createSession(token);
243
+ }
244
+ finally {
245
+ pendingSessions--;
246
+ }
247
+ // We'll store the session after handleRequest sets the session ID
248
+ }
249
+ // Update last activity timestamp for session keep-alive
250
+ session.lastActivityAt = Date.now();
251
+ // Update token if provided (in case of token refresh)
252
+ const refreshedToken = extractBearerToken(req);
253
+ if (refreshedToken) {
254
+ session.apiClient.setAccessToken(refreshedToken);
255
+ }
256
+ // Handle the request
257
+ await session.transport.handleRequest(req, res, req.body);
258
+ // Store session if it's new (get session ID from response header)
259
+ if (!sessionId) {
260
+ const newSessionId = res.getHeader("mcp-session-id");
261
+ if (newSessionId && !sessions.has(newSessionId)) {
262
+ sessions.set(newSessionId, session);
263
+ }
264
+ else if (!newSessionId) {
265
+ // Cleanup orphaned session to prevent memory leaks
266
+ // This can happen if handleRequest fails to set a session ID
267
+ console.error(`[MCP] Warning: No session ID returned, cleaning up orphaned session`);
268
+ try {
269
+ await session.server.close();
270
+ }
271
+ catch (closeError) {
272
+ console.error(`[MCP] Error closing orphaned session:`, closeError);
273
+ }
274
+ }
275
+ }
276
+ }
277
+ catch (error) {
278
+ console.error("Error handling MCP POST request:", error);
279
+ if (!res.headersSent) {
280
+ // Sanitize error messages in production to avoid exposing internal details
281
+ const errorMessage = DEBUG
282
+ ? (error instanceof Error ? error.message : "Internal server error")
283
+ : "Internal server error";
284
+ res.status(500).json({
285
+ jsonrpc: "2.0",
286
+ error: {
287
+ code: -32603,
288
+ message: errorMessage
289
+ },
290
+ id: null
291
+ });
292
+ }
293
+ }
294
+ });
295
+ // Handle GET requests for SSE streams
296
+ app.get("/mcp", async (req, res) => {
297
+ const sessionId = req.headers["mcp-session-id"];
298
+ if (!sessionId) {
299
+ res.status(400).json({
300
+ jsonrpc: "2.0",
301
+ error: { code: -32000, message: "Missing session ID for SSE stream" },
302
+ id: null
303
+ });
304
+ return;
305
+ }
306
+ const session = sessions.get(sessionId);
307
+ if (!session) {
308
+ res.status(400).json({
309
+ jsonrpc: "2.0",
310
+ error: { code: -32000, message: "Invalid or expired session" },
311
+ id: null
312
+ });
313
+ return;
314
+ }
315
+ // Update last activity timestamp for session keep-alive
316
+ session.lastActivityAt = Date.now();
317
+ try {
318
+ await session.transport.handleRequest(req, res);
319
+ }
320
+ catch (error) {
321
+ console.error("Error handling MCP GET request:", error);
322
+ if (!res.headersSent) {
323
+ res.status(500).json({
324
+ jsonrpc: "2.0",
325
+ error: { code: -32603, message: "SSE stream error" },
326
+ id: null
327
+ });
328
+ }
329
+ }
330
+ });
331
+ // Handle DELETE requests for session termination
332
+ app.delete("/mcp", async (req, res) => {
333
+ const sessionId = req.headers["mcp-session-id"];
334
+ if (sessionId && sessions.has(sessionId)) {
335
+ const session = sessions.get(sessionId);
336
+ sessions.delete(sessionId);
337
+ try {
338
+ await session?.server.close();
339
+ }
340
+ catch (e) {
341
+ if (DEBUG) {
342
+ console.error(`[DEBUG] Error closing session on DELETE:`, e);
343
+ }
344
+ }
345
+ if (DEBUG) {
346
+ console.error(`[DEBUG] Session terminated: ${sessionId}`);
347
+ }
348
+ }
349
+ res.status(200).json({ message: "Session terminated" });
350
+ });
351
+ // Start the HTTP server
352
+ const httpServer = app.listen(httpPort, httpHost, () => {
353
+ console.error(`Sequentum MCP Server running on HTTP at http://${httpHost}:${httpPort}/mcp ` +
354
+ `(transport=streamable-http, health=http://${httpHost}:${httpPort}/health, maxSessions=${MAX_SESSIONS})`);
355
+ if (DEBUG) {
356
+ console.error(`Connected to: ${apiBaseUrl}`);
357
+ }
358
+ });
359
+ // Graceful shutdown handler — closes all sessions, stops accepting
360
+ // connections, and clears the cleanup interval for a clean process exit.
361
+ // Important for Docker/K8s deployments where pods receive SIGTERM.
362
+ let isShuttingDown = false;
363
+ async function gracefulShutdown(signal) {
364
+ if (isShuttingDown)
365
+ return; // Prevent double-shutdown
366
+ isShuttingDown = true;
367
+ console.error(`\n[MCP] ${signal} received, shutting down gracefully...`);
368
+ // Force exit after 10 seconds if cleanup hangs
369
+ const forceExitTimer = setTimeout(() => {
370
+ console.error("[MCP] Graceful shutdown timed out after 10s, forcing exit");
371
+ process.exit(1);
372
+ }, 10_000);
373
+ forceExitTimer.unref();
374
+ // Stop accepting new connections
375
+ httpServer.close(() => {
376
+ console.error("[MCP] HTTP server closed, no longer accepting connections");
377
+ });
378
+ // Clear the session cleanup interval so it doesn't keep the process alive
379
+ clearInterval(cleanupIntervalId);
380
+ // Close all active MCP sessions
381
+ const closePromises = [];
382
+ for (const [sessionId, session] of sessions) {
383
+ closePromises.push(session.server.close().catch((err) => console.error(`[MCP] Error closing session ${sessionId}:`, err)));
384
+ }
385
+ await Promise.allSettled(closePromises);
386
+ sessions.clear();
387
+ console.error(`[MCP] All ${closePromises.length} sessions closed. Shutdown complete.`);
388
+ process.exit(0);
389
+ }
390
+ process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
391
+ process.on("SIGINT", () => gracefulShutdown("SIGINT"));
392
+ }
393
+ //# sourceMappingURL=http-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/server/http-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared LLM Policy Strings
3
+ *
4
+ * Single source of truth for guidance text that is injected into multiple
5
+ * surfaces (tool descriptions, prompt templates, server instructions).
6
+ * Centralizing here prevents the surfaces from silently drifting apart.
7
+ */
8
+ /**
9
+ * Governs how the model should populate the `prompt` argument of
10
+ * `start_agent_build`. Referenced by the tool description in tools.ts
11
+ * and inlined into the build-agent-from-prompt template in prompts.ts.
12
+ */
13
+ export declare const PROMPT_HANDLING_POLICY: string;
14
+ /**
15
+ * Server-level instruction injected via the MCP `instructions` field in handlers.ts.
16
+ * Governs when the model must ask for clarification before invoking any build/run tool.
17
+ */
18
+ export declare const SUFFICIENCY_POLICY: string;
19
+ //# sourceMappingURL=policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/server/policies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAMsF,CAAC;AAE1H;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QASqH,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Shared LLM Policy Strings
3
+ *
4
+ * Single source of truth for guidance text that is injected into multiple
5
+ * surfaces (tool descriptions, prompt templates, server instructions).
6
+ * Centralizing here prevents the surfaces from silently drifting apart.
7
+ */
8
+ /**
9
+ * Governs how the model should populate the `prompt` argument of
10
+ * `start_agent_build`. Referenced by the tool description in tools.ts
11
+ * and inlined into the build-agent-from-prompt template in prompts.ts.
12
+ */
13
+ export const PROMPT_HANDLING_POLICY = "PROMPT-HANDLING POLICY: " +
14
+ "(1) Pass the user's wording (and any clarification answers from earlier in the conversation) through verbatim. " +
15
+ "(2) Trivial normalizations (adding 'https://', fixing an obvious URL typo) are fine. " +
16
+ "(3) Do NOT invent details the user did not state — extra fields, output formats, price-handling rules, " +
17
+ "lazy-load instructions, pagination strategies, etc. The upstream Sequentum Agent Builder pipeline will infer these on its own from the page; do not pre-empt it. " +
18
+ "If a detail feels essential to include, that is a sufficiency gap — ask one clarifying question instead of inventing.";
19
+ /**
20
+ * Server-level instruction injected via the MCP `instructions` field in handlers.ts.
21
+ * Governs when the model must ask for clarification before invoking any build/run tool.
22
+ */
23
+ export const SUFFICIENCY_POLICY = "SUFFICIENCY POLICY — applies to all build and run requests:\n" +
24
+ "Before invoking any tool that builds or runs an agent in response to a scrape or automation request, " +
25
+ "you MUST ensure the following are unambiguous: (1) the target URL or domain, (2) the data the user wants extracted, " +
26
+ "(3) any qualifiers that affect scope (section, filters, language, etc.).\n\n" +
27
+ "You MAY resolve missing details from explicit conversational context when the context makes the answer clearly unambiguous.\n\n" +
28
+ "You MUST NOT silently extrapolate by analogy. " +
29
+ "This includes copying details from one site onto a different site, or reusing a prior request's data schema for a conceptually different request — even when prior inferences were accepted.\n\n" +
30
+ "When the request is genuinely underspecified, you MUST ask one consolidated clarifying question covering all gaps before any tool call — ask everything you need in one round-trip, not sequentially. " +
31
+ "When you would need to extrapolate by analogy, you MUST state your inference in one short line and ask the user to confirm before any tool call.";
32
+ //# sourceMappingURL=policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/server/policies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,0BAA0B;IAC1B,iHAAiH;IACjH,uFAAuF;IACvF,yGAAyG;IACzG,mKAAmK;IACnK,uHAAuH,CAAC;AAE1H;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,+DAA+D;IAC/D,uGAAuG;IACvG,sHAAsH;IACtH,8EAA8E;IAC9E,iIAAiI;IACjI,gDAAgD;IAChD,kMAAkM;IAClM,wMAAwM;IACxM,kJAAkJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * MCP Prompt Definitions
3
+ *
4
+ * Reusable instruction templates that guide the AI through common
5
+ * multi-step workflows. Prompts are explicitly invoked by the user
6
+ * or client and reference the server's existing tools.
7
+ */
8
+ import { Prompt, PromptMessage } from "@modelcontextprotocol/sdk/types.js";
9
+ export declare const prompts: Prompt[];
10
+ /**
11
+ * Build the messages array for a given prompt invocation.
12
+ *
13
+ * @param name - The prompt name
14
+ * @param args - The arguments provided by the caller
15
+ * @returns Array of PromptMessage objects
16
+ * @throws Error if the prompt name is unknown
17
+ */
18
+ export declare function getPromptMessages(name: string, args: Record<string, string> | undefined): PromptMessage[];
19
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/server/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAO3E,eAAO,MAAM,OAAO,EAAE,MAAM,EAyK3B,CAAC;AAoCF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GACvC,aAAa,EAAE,CAyRjB"}