@kya-os/create-mcpi-app 1.9.33 → 1.9.35
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/.turbo/turbo-build.log +16 -12
- package/.turbo/turbo-test$colon$coverage.log +1829 -0
- package/.turbo/turbo-test.log +628 -0
- package/dist/bundles/blank.js +94964 -81677
- package/dist/bundles/ecommerce.js +94964 -81677
- package/dist/bundles/hardware-world.js +94979 -81692
- package/dist/bundles/manifest.json +14 -9
- package/dist/bundles/mix-station.js +112480 -0
- package/dist/cli-runner.d.ts.map +1 -1
- package/dist/cli-runner.js +23 -0
- package/dist/cli-runner.js.map +1 -1
- package/dist/helpers/fetch-cloudflare-mcpi-template.js +1 -1
- package/dist/helpers/generate-cloudflare-files.d.ts +1 -1
- package/dist/helpers/generate-cloudflare-files.d.ts.map +1 -1
- package/dist/helpers/generate-cloudflare-files.js +441 -7
- package/dist/helpers/generate-cloudflare-files.js.map +1 -1
- package/dist/helpers/generate-openapi-project.d.ts +36 -0
- package/dist/helpers/generate-openapi-project.d.ts.map +1 -0
- package/dist/helpers/generate-openapi-project.js +114 -0
- package/dist/helpers/generate-openapi-project.js.map +1 -0
- package/dist/helpers/generate-openapi-tools.d.ts +43 -0
- package/dist/helpers/generate-openapi-tools.d.ts.map +1 -0
- package/dist/helpers/generate-openapi-tools.js +550 -0
- package/dist/helpers/generate-openapi-tools.js.map +1 -0
- package/dist/helpers/generate-runtime-config.d.ts +16 -0
- package/dist/helpers/generate-runtime-config.d.ts.map +1 -0
- package/dist/helpers/generate-runtime-config.js +49 -0
- package/dist/helpers/generate-runtime-config.js.map +1 -0
- package/dist/helpers/get-package-versions.js +3 -3
- package/dist/helpers/get-package-versions.js.map +1 -1
- package/dist/helpers/openapi-ingestion.d.ts +21 -0
- package/dist/helpers/openapi-ingestion.d.ts.map +1 -0
- package/dist/helpers/openapi-ingestion.js +433 -0
- package/dist/helpers/openapi-ingestion.js.map +1 -0
- package/dist/helpers/wrap/command.d.ts +12 -0
- package/dist/helpers/wrap/command.d.ts.map +1 -0
- package/dist/helpers/wrap/command.js +344 -0
- package/dist/helpers/wrap/command.js.map +1 -0
- package/dist/helpers/wrap/detect-server.d.ts +30 -0
- package/dist/helpers/wrap/detect-server.d.ts.map +1 -0
- package/dist/helpers/wrap/detect-server.js +207 -0
- package/dist/helpers/wrap/detect-server.js.map +1 -0
- package/dist/helpers/wrap/index.d.ts +13 -0
- package/dist/helpers/wrap/index.d.ts.map +1 -0
- package/dist/helpers/wrap/index.js +11 -0
- package/dist/helpers/wrap/index.js.map +1 -0
- package/dist/helpers/wrap/templates.d.ts +24 -0
- package/dist/helpers/wrap/templates.d.ts.map +1 -0
- package/dist/helpers/wrap/templates.js +221 -0
- package/dist/helpers/wrap/templates.js.map +1 -0
- package/dist/types/openapi-generator.d.ts +142 -0
- package/dist/types/openapi-generator.d.ts.map +1 -0
- package/dist/types/openapi-generator.js +8 -0
- package/dist/types/openapi-generator.js.map +1 -0
- package/package.json +31 -9
package/dist/cli-runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-runner.d.ts","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-runner.d.ts","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"AA2BA,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyfzE"}
|
package/dist/cli-runner.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createProject } from "./helpers/create.js";
|
|
|
10
10
|
import { createKYAOSBanner } from "./effects/index.js";
|
|
11
11
|
import { validateProjectName, validateDirectoryAvailability, } from "./utils/validate-project-name.js";
|
|
12
12
|
import { resetIdentity, regenerateIdentity, } from "./helpers/identity-manager.js";
|
|
13
|
+
import { runWrapCommand } from "./helpers/wrap/index.js";
|
|
13
14
|
const __filename = fileURLToPath(import.meta.url);
|
|
14
15
|
const __dirname = path.dirname(__filename);
|
|
15
16
|
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
|
|
@@ -370,6 +371,28 @@ export async function runCLI(argv = process.argv) {
|
|
|
370
371
|
process.exit(1);
|
|
371
372
|
}
|
|
372
373
|
});
|
|
374
|
+
program
|
|
375
|
+
.command("wrap [directory]")
|
|
376
|
+
.description("Wrap an existing MCP server with MCP-I identity verification")
|
|
377
|
+
.option("-y, --yes", "Skip confirmation prompts (use defaults)", false)
|
|
378
|
+
.option("--skip-install", "Skip installing dependencies", false)
|
|
379
|
+
.option("--skip-identity", "Skip DID generation", false)
|
|
380
|
+
.action(async (directory, options) => {
|
|
381
|
+
try {
|
|
382
|
+
const targetDir = directory
|
|
383
|
+
? path.resolve(process.cwd(), directory)
|
|
384
|
+
: process.cwd();
|
|
385
|
+
await runWrapCommand(targetDir, {
|
|
386
|
+
yes: options.yes,
|
|
387
|
+
skipInstall: options.skipInstall,
|
|
388
|
+
skipIdentity: options.skipIdentity,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
catch (error) {
|
|
392
|
+
console.error(chalk.red("Failed to wrap server:"), error);
|
|
393
|
+
process.exit(1);
|
|
394
|
+
}
|
|
395
|
+
});
|
|
373
396
|
program
|
|
374
397
|
.command("reset-identity")
|
|
375
398
|
.description("Reset the current project's identity (removes identity files)")
|
package/dist/cli-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,7 +108,7 @@ export async function fetchCloudflareMcpiTemplate(targetDir, options) {
|
|
|
108
108
|
"@kya-os/mcp-i-cloudflare": mcpICloudflareVersion,
|
|
109
109
|
"@modelcontextprotocol/sdk": "1.24.0",
|
|
110
110
|
agents: "0.2.30",
|
|
111
|
-
hono: "4.
|
|
111
|
+
hono: "4.12.4",
|
|
112
112
|
},
|
|
113
113
|
devDependencies: {
|
|
114
114
|
"@cloudflare/vitest-pool-workers": "0.5.41",
|
|
@@ -27,7 +27,7 @@ export interface GenerateFilesOptions {
|
|
|
27
27
|
/** Project name (used for package.json, wrangler.toml, class names) */
|
|
28
28
|
projectName: string;
|
|
29
29
|
/** Template variant */
|
|
30
|
-
template?: "blank" | "ecommerce" | "hardware-world";
|
|
30
|
+
template?: "blank" | "ecommerce" | "hardware-world" | "mix-station";
|
|
31
31
|
/** AgentShield project ID (pre-configured in wrangler.toml) */
|
|
32
32
|
agentShieldProjectId?: string;
|
|
33
33
|
/** AgentShield API URL (defaults to https://kya.vouched.id) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-cloudflare-files.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-cloudflare-files.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,CAAC;IACpE,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAqO9B"}
|
|
@@ -98,7 +98,7 @@ export async function generateCloudflareProjectFiles(options) {
|
|
|
98
98
|
"@modelcontextprotocol/sdk": "1.25.2",
|
|
99
99
|
// agents@0.3.x removed 'ai' from direct deps, fixing Redis bundling issue
|
|
100
100
|
agents: "0.3.6",
|
|
101
|
-
hono: "4.
|
|
101
|
+
hono: "4.12.4",
|
|
102
102
|
},
|
|
103
103
|
devDependencies: {
|
|
104
104
|
"@cloudflare/vitest-pool-workers": "^0.5.41",
|
|
@@ -194,12 +194,15 @@ dist/
|
|
|
194
194
|
content: generateRuntimeConfigTs(template),
|
|
195
195
|
encoding: "utf-8",
|
|
196
196
|
});
|
|
197
|
-
// 9. src/tools/greet.ts (
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
197
|
+
// 9. src/tools/greet.ts (included for templates that use it)
|
|
198
|
+
// mix-station has its own tool set and doesn't use greet
|
|
199
|
+
if (template !== "mix-station") {
|
|
200
|
+
files.push({
|
|
201
|
+
path: "src/tools/greet.ts",
|
|
202
|
+
content: generateGreetToolTs(projectName),
|
|
203
|
+
encoding: "utf-8",
|
|
204
|
+
});
|
|
205
|
+
}
|
|
203
206
|
// 10. Add template-specific tools
|
|
204
207
|
if (template === "ecommerce") {
|
|
205
208
|
files.push(...generateEcommerceTools());
|
|
@@ -207,6 +210,9 @@ dist/
|
|
|
207
210
|
else if (template === "hardware-world") {
|
|
208
211
|
files.push(...generateHardwareWorldTools());
|
|
209
212
|
}
|
|
213
|
+
else if (template === "mix-station") {
|
|
214
|
+
files.push(...generateMixStationTools());
|
|
215
|
+
}
|
|
210
216
|
// 11. GitHub Actions workflow
|
|
211
217
|
files.push({
|
|
212
218
|
path: ".github/workflows/deploy.yml",
|
|
@@ -249,6 +255,12 @@ function generateWranglerToml(opts) {
|
|
|
249
255
|
templateVars = `
|
|
250
256
|
# Hardware World API Configuration
|
|
251
257
|
HARDWARE_WORLD_API_BASE_URL = "https://hardwareworld.com"
|
|
258
|
+
`;
|
|
259
|
+
}
|
|
260
|
+
else if (template === "mix-station") {
|
|
261
|
+
templateVars = `
|
|
262
|
+
# Mixer API Configuration
|
|
263
|
+
MIXER_API_URL = "https://mixer-vouched.vercel.app"
|
|
252
264
|
`;
|
|
253
265
|
}
|
|
254
266
|
return `#:schema node_modules/wrangler/config-schema.json
|
|
@@ -366,6 +378,10 @@ function generateRuntimeConfigTs(template) {
|
|
|
366
378
|
if (template === "hardware-world") {
|
|
367
379
|
return generateHardwareWorldRuntimeConfig();
|
|
368
380
|
}
|
|
381
|
+
// Mix Station has its own runtime config with Mixer API client
|
|
382
|
+
if (template === "mix-station") {
|
|
383
|
+
return generateMixStationRuntimeConfig();
|
|
384
|
+
}
|
|
369
385
|
const imports = [`import { greetTool } from "./tools/greet";`];
|
|
370
386
|
const tools = ["greetTool"];
|
|
371
387
|
if (template === "ecommerce") {
|
|
@@ -1403,6 +1419,424 @@ export const addToCartTool: ToolDefinition = {
|
|
|
1403
1419
|
},
|
|
1404
1420
|
];
|
|
1405
1421
|
}
|
|
1422
|
+
function generateMixStationRuntimeConfig() {
|
|
1423
|
+
return `import { defineConfig, type CloudflareRuntimeConfig, type ToolDefinition } from "@kya-os/mcp-i-cloudflare";
|
|
1424
|
+
import type { CloudflareEnv } from "@kya-os/mcp-i-cloudflare";
|
|
1425
|
+
import { createMixerClient } from "./lib/mixer-client";
|
|
1426
|
+
|
|
1427
|
+
// Cached env values for tool access (initialized by getRuntimeConfig)
|
|
1428
|
+
let cachedProjectId: string | null = null;
|
|
1429
|
+
let cachedMixerApiUrl: string | undefined = undefined;
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* Get runtime configuration for MCP-I Cloudflare Worker
|
|
1433
|
+
*/
|
|
1434
|
+
export function getRuntimeConfig(env: CloudflareEnv): CloudflareRuntimeConfig {
|
|
1435
|
+
cachedProjectId = env.AGENTSHIELD_PROJECT_ID || null;
|
|
1436
|
+
cachedMixerApiUrl = env.MIXER_API_URL || undefined;
|
|
1437
|
+
|
|
1438
|
+
const environment = (env.MCPI_ENV || env.ENVIRONMENT || "development") as "development" | "production";
|
|
1439
|
+
|
|
1440
|
+
const proofingConfig = env.AGENTSHIELD_API_KEY ? {
|
|
1441
|
+
enabled: true,
|
|
1442
|
+
batchQueue: {
|
|
1443
|
+
destinations: [{
|
|
1444
|
+
type: "agentshield" as const,
|
|
1445
|
+
apiKey: env.AGENTSHIELD_API_KEY,
|
|
1446
|
+
apiUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
|
|
1447
|
+
}],
|
|
1448
|
+
},
|
|
1449
|
+
} : undefined;
|
|
1450
|
+
|
|
1451
|
+
return defineConfig({
|
|
1452
|
+
environment,
|
|
1453
|
+
proofing: proofingConfig,
|
|
1454
|
+
vars: {
|
|
1455
|
+
ENVIRONMENT: environment,
|
|
1456
|
+
AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,
|
|
1457
|
+
AGENTSHIELD_API_URL: env.AGENTSHIELD_API_URL,
|
|
1458
|
+
AGENTSHIELD_PROJECT_ID: env.AGENTSHIELD_PROJECT_ID,
|
|
1459
|
+
},
|
|
1460
|
+
});
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
/**
|
|
1464
|
+
* Get mixer client lazily at execution time.
|
|
1465
|
+
* Uses cached env values set by getRuntimeConfig.
|
|
1466
|
+
*/
|
|
1467
|
+
function getMixerClientLazy(): { projectId: string; mixer: ReturnType<typeof createMixerClient> } | null {
|
|
1468
|
+
const projectId = cachedProjectId;
|
|
1469
|
+
if (!projectId) return null;
|
|
1470
|
+
return { projectId, mixer: createMixerClient(projectId, cachedMixerApiUrl) };
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
/**
|
|
1474
|
+
* Get all tools for this agent
|
|
1475
|
+
*/
|
|
1476
|
+
export function getTools(): ToolDefinition[] {
|
|
1477
|
+
return [
|
|
1478
|
+
{
|
|
1479
|
+
name: "get_station_context",
|
|
1480
|
+
description: "Retrieve the curated context and documentation from this station. Returns combined content from all enabled station items.",
|
|
1481
|
+
inputSchema: {
|
|
1482
|
+
type: "object",
|
|
1483
|
+
properties: {
|
|
1484
|
+
query: { type: "string", description: "Optional search query to filter context" },
|
|
1485
|
+
maxTokens: { type: "number", description: "Maximum tokens to return (default: 8000)" },
|
|
1486
|
+
},
|
|
1487
|
+
},
|
|
1488
|
+
handler: async (args: { query?: string; maxTokens?: number }) => {
|
|
1489
|
+
const client = getMixerClientLazy();
|
|
1490
|
+
if (!client) {
|
|
1491
|
+
return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
|
|
1492
|
+
}
|
|
1493
|
+
try {
|
|
1494
|
+
const result = await client.mixer.getContext(args);
|
|
1495
|
+
if (!result.success) {
|
|
1496
|
+
return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
|
|
1497
|
+
}
|
|
1498
|
+
return { content: [{ type: "text", text: result.content || JSON.stringify(result, null, 2) }] };
|
|
1499
|
+
} catch (error) {
|
|
1500
|
+
return { content: [{ type: "text", text: \`Error fetching context: \${error}\` }] };
|
|
1501
|
+
}
|
|
1502
|
+
},
|
|
1503
|
+
},
|
|
1504
|
+
{
|
|
1505
|
+
name: "search_station",
|
|
1506
|
+
description: "Search through the station's indexed content using semantic search. Returns matching code nodes with relevance scores.",
|
|
1507
|
+
inputSchema: {
|
|
1508
|
+
type: "object",
|
|
1509
|
+
properties: {
|
|
1510
|
+
query: { type: "string", description: "Search query" },
|
|
1511
|
+
limit: { type: "number", description: "Maximum number of results (default: 10)" },
|
|
1512
|
+
},
|
|
1513
|
+
required: ["query"],
|
|
1514
|
+
},
|
|
1515
|
+
handler: async (args: { query: string; limit?: number }) => {
|
|
1516
|
+
const client = getMixerClientLazy();
|
|
1517
|
+
if (!client) {
|
|
1518
|
+
return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
|
|
1519
|
+
}
|
|
1520
|
+
try {
|
|
1521
|
+
const result = await client.mixer.search(args);
|
|
1522
|
+
if (!result.success) {
|
|
1523
|
+
return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
|
|
1524
|
+
}
|
|
1525
|
+
let output = \`Found \${result.resultCount} results for "\${result.query}":\\n\\n\`;
|
|
1526
|
+
for (const r of result.results || []) {
|
|
1527
|
+
output += \`## \${r.name || "Unknown"} (\${r.nodeType || "unknown"})\\n\`;
|
|
1528
|
+
output += \`File: \${r.filePath || "unknown"}:\${r.startLine ?? "?"}-\${r.endLine ?? "?"}\\n\`;
|
|
1529
|
+
output += \`Score: \${typeof r.score === "number" ? (r.score * 100).toFixed(1) : "?"}%\\n\\n\`;
|
|
1530
|
+
if (r.content) {
|
|
1531
|
+
output += \`\\\`\\\`\\\`\\n\${r.content.substring(0, 500)}\${r.content.length > 500 ? "..." : ""}\\n\\\`\\\`\\\`\\n\\n\`;
|
|
1532
|
+
}
|
|
1533
|
+
}
|
|
1534
|
+
return { content: [{ type: "text", text: output }] };
|
|
1535
|
+
} catch (error) {
|
|
1536
|
+
return { content: [{ type: "text", text: \`Error searching: \${error}\` }] };
|
|
1537
|
+
}
|
|
1538
|
+
},
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
name: "get_station_info",
|
|
1542
|
+
description: "Get information about this station including available repositories, analysis status, and capabilities.",
|
|
1543
|
+
inputSchema: {
|
|
1544
|
+
type: "object",
|
|
1545
|
+
properties: {},
|
|
1546
|
+
},
|
|
1547
|
+
handler: async () => {
|
|
1548
|
+
const client = getMixerClientLazy();
|
|
1549
|
+
if (!client) {
|
|
1550
|
+
return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
|
|
1551
|
+
}
|
|
1552
|
+
try {
|
|
1553
|
+
const result = await client.mixer.getInfo();
|
|
1554
|
+
if (!result.success) {
|
|
1555
|
+
return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
|
|
1556
|
+
}
|
|
1557
|
+
let output = \`# \${result.station.name}\\n\\n\`;
|
|
1558
|
+
if (result.station.description) {
|
|
1559
|
+
output += \`\${result.station.description}\\n\\n\`;
|
|
1560
|
+
}
|
|
1561
|
+
output += \`## Content\\n\`;
|
|
1562
|
+
output += \`- Total items: \${result.content?.totalItems ?? 0}\\n\`;
|
|
1563
|
+
output += \`- Enabled items: \${result.content?.enabledItems ?? 0}\\n\`;
|
|
1564
|
+
output += \`- Repositories: \${result.content?.repositories?.join(", ") || "None"}\\n\\n\`;
|
|
1565
|
+
output += \`## Intelligence\\n\`;
|
|
1566
|
+
if (result.intelligence.available) {
|
|
1567
|
+
output += \`- Status: Ready\\n\`;
|
|
1568
|
+
output += \`- Code nodes: \${result.intelligence.totalNodes}\\n\`;
|
|
1569
|
+
output += \`- Relationships: \${result.intelligence.totalRelationships}\\n\`;
|
|
1570
|
+
output += \`- Communities: \${result.intelligence.totalCommunities}\\n\`;
|
|
1571
|
+
} else {
|
|
1572
|
+
output += \`- Status: \${result.intelligence.status}\\n\`;
|
|
1573
|
+
output += \`- Message: \${result.intelligence.message}\\n\`;
|
|
1574
|
+
}
|
|
1575
|
+
output += \`\\n## Capabilities\\n\`;
|
|
1576
|
+
output += \`- Semantic search: \${result.capabilities.semanticSearch ? "Yes" : "No"}\\n\`;
|
|
1577
|
+
output += \`- Graph queries: \${result.capabilities.graphQueries ? "Yes" : "No"}\\n\`;
|
|
1578
|
+
output += \`- Communities: \${result.capabilities.communities ? "Yes" : "No"}\\n\`;
|
|
1579
|
+
return { content: [{ type: "text", text: output }] };
|
|
1580
|
+
} catch (error) {
|
|
1581
|
+
return { content: [{ type: "text", text: \`Error getting info: \${error}\` }] };
|
|
1582
|
+
}
|
|
1583
|
+
},
|
|
1584
|
+
},
|
|
1585
|
+
{
|
|
1586
|
+
name: "read_file",
|
|
1587
|
+
description: "Read the content of a specific file from the station. Supports partial paths and optional line ranges.",
|
|
1588
|
+
inputSchema: {
|
|
1589
|
+
type: "object",
|
|
1590
|
+
properties: {
|
|
1591
|
+
filePath: { type: "string", description: "The file path to read (can be partial)" },
|
|
1592
|
+
startLine: { type: "number", description: "Optional: Start line (1-indexed)" },
|
|
1593
|
+
endLine: { type: "number", description: "Optional: End line (1-indexed)" },
|
|
1594
|
+
},
|
|
1595
|
+
required: ["filePath"],
|
|
1596
|
+
},
|
|
1597
|
+
handler: async (args: { filePath: string; startLine?: number; endLine?: number }) => {
|
|
1598
|
+
const client = getMixerClientLazy();
|
|
1599
|
+
if (!client) {
|
|
1600
|
+
return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
|
|
1601
|
+
}
|
|
1602
|
+
try {
|
|
1603
|
+
const result = await client.mixer.readFile(args);
|
|
1604
|
+
if (!result.success) {
|
|
1605
|
+
let output = \`Error: \${result.error}\\n\`;
|
|
1606
|
+
if (result.suggestions?.length) {
|
|
1607
|
+
output += \`\\nSimilar files found:\\n\`;
|
|
1608
|
+
for (const s of result.suggestions) {
|
|
1609
|
+
output += \`- \${s}\\n\`;
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1612
|
+
return { content: [{ type: "text", text: output }] };
|
|
1613
|
+
}
|
|
1614
|
+
let output = \`# \${result.file.path}\\n\\n\`;
|
|
1615
|
+
output += \`Lines: \${result.file.lineCount}\`;
|
|
1616
|
+
if (result.file.startLine || result.file.endLine) {
|
|
1617
|
+
output += \` (showing \${result.file.startLine || 1}-\${result.file.endLine || result.file.lineCount})\`;
|
|
1618
|
+
}
|
|
1619
|
+
output += \`\\n\\n\\\`\\\`\\\`\\n\${result.file.content}\\n\\\`\\\`\\\`\`;
|
|
1620
|
+
if (result.alternateMatches?.length) {
|
|
1621
|
+
output += \`\\n\\nOther matching files: \${result.alternateMatches.join(", ")}\`;
|
|
1622
|
+
}
|
|
1623
|
+
return { content: [{ type: "text", text: output }] };
|
|
1624
|
+
} catch (error) {
|
|
1625
|
+
return { content: [{ type: "text", text: \`Error reading file: \${error}\` }] };
|
|
1626
|
+
}
|
|
1627
|
+
},
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
name: "grep",
|
|
1631
|
+
description: "Search for text patterns using regex across all station content. Useful for finding TODOs, error messages, specific function calls, etc.",
|
|
1632
|
+
inputSchema: {
|
|
1633
|
+
type: "object",
|
|
1634
|
+
properties: {
|
|
1635
|
+
pattern: { type: "string", description: "Regex pattern to search for" },
|
|
1636
|
+
fileFilter: { type: "string", description: "Optional: Only search files containing this substring in their path" },
|
|
1637
|
+
caseSensitive: { type: "boolean", description: "Whether to match case (default: false)" },
|
|
1638
|
+
maxResults: { type: "number", description: "Maximum results to return (default: 100)" },
|
|
1639
|
+
},
|
|
1640
|
+
required: ["pattern"],
|
|
1641
|
+
},
|
|
1642
|
+
handler: async (args: { pattern: string; fileFilter?: string; caseSensitive?: boolean; maxResults?: number }) => {
|
|
1643
|
+
const client = getMixerClientLazy();
|
|
1644
|
+
if (!client) {
|
|
1645
|
+
return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
|
|
1646
|
+
}
|
|
1647
|
+
try {
|
|
1648
|
+
const result = await client.mixer.grep(args);
|
|
1649
|
+
if (!result.success) {
|
|
1650
|
+
return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
|
|
1651
|
+
}
|
|
1652
|
+
let output = \`Found \${result.totalMatches} matches for pattern "\${result.pattern}"\\n\`;
|
|
1653
|
+
output += \`Files searched: \${result.filesSearched}\`;
|
|
1654
|
+
if (result.truncated) output += \` (results truncated)\`;
|
|
1655
|
+
output += \`\\n\\n\`;
|
|
1656
|
+
for (const m of result.matches || []) {
|
|
1657
|
+
output += \`**\${m.file}:\${m.line}:\${m.column}**\\n\`;
|
|
1658
|
+
output += \`\\\`\\\`\\\`\\n\${m.context}\\n\\\`\\\`\\\`\\n\\n\`;
|
|
1659
|
+
}
|
|
1660
|
+
return { content: [{ type: "text", text: output }] };
|
|
1661
|
+
} catch (error) {
|
|
1662
|
+
return { content: [{ type: "text", text: \`Error searching: \${error}\` }] };
|
|
1663
|
+
}
|
|
1664
|
+
},
|
|
1665
|
+
},
|
|
1666
|
+
{
|
|
1667
|
+
name: "graph_query",
|
|
1668
|
+
description: "Query the code graph for nodes, relationships, paths, and communities. The station must have been analyzed to build the graph.",
|
|
1669
|
+
inputSchema: {
|
|
1670
|
+
type: "object",
|
|
1671
|
+
properties: {
|
|
1672
|
+
action: { type: "string", description: "Query action: statistics, nodes, node, relationships, connected, path, communities, community, processes" },
|
|
1673
|
+
nodeId: { type: "string", description: "Node ID for node-specific queries" },
|
|
1674
|
+
targetNodeId: { type: "string", description: "Target node ID for path queries" },
|
|
1675
|
+
direction: { type: "string", description: "Relationship direction: in, out, or both (default: out)" },
|
|
1676
|
+
hops: { type: "number", description: "Traversal depth (default: 2)" },
|
|
1677
|
+
nodeTypes: { type: "string", description: "Comma-separated node types to filter" },
|
|
1678
|
+
limit: { type: "number", description: "Maximum results (default: 50)" },
|
|
1679
|
+
},
|
|
1680
|
+
required: ["action"],
|
|
1681
|
+
},
|
|
1682
|
+
handler: async (args: { action: string; nodeId?: string; targetNodeId?: string; direction?: string; hops?: number; nodeTypes?: string; limit?: number }) => {
|
|
1683
|
+
const client = getMixerClientLazy();
|
|
1684
|
+
if (!client) {
|
|
1685
|
+
return { content: [{ type: "text", text: "Error: Station not configured. Missing project ID." }] };
|
|
1686
|
+
}
|
|
1687
|
+
try {
|
|
1688
|
+
const result = await client.mixer.graph(args);
|
|
1689
|
+
if (!result.success) {
|
|
1690
|
+
return { content: [{ type: "text", text: \`Error: \${result.error}\` }] };
|
|
1691
|
+
}
|
|
1692
|
+
let output = \`## Graph Query: \${result.action}\\n\\n\`;
|
|
1693
|
+
if (result.statistics) {
|
|
1694
|
+
output += \`**Statistics:**\\n\`;
|
|
1695
|
+
output += JSON.stringify(result.statistics, null, 2);
|
|
1696
|
+
} else if (result.nodes) {
|
|
1697
|
+
output += \`Found \${result.count} nodes:\\n\\n\`;
|
|
1698
|
+
for (const n of result.nodes.slice(0, 20)) {
|
|
1699
|
+
output += \`- **\${n.name}** (\${n.nodeType}) - \${n.filePath || "unknown"}:\${n.startLine || "?"}\\n\`;
|
|
1700
|
+
}
|
|
1701
|
+
if (result.count > 20) output += \`\\n... and \${result.count - 20} more\\n\`;
|
|
1702
|
+
} else if (result.node) {
|
|
1703
|
+
output += \`**\${result.node.name}** (\${result.node.nodeType})\\n\`;
|
|
1704
|
+
output += \`- File: \${result.node.filePath}\\n\`;
|
|
1705
|
+
output += \`- Lines: \${result.node.startLine}-\${result.node.endLine}\\n\`;
|
|
1706
|
+
} else if (result.relationships) {
|
|
1707
|
+
output += \`Found \${result.count} relationships:\\n\\n\`;
|
|
1708
|
+
for (const r of result.relationships.slice(0, 20)) {
|
|
1709
|
+
output += \`- \${r.type}: \${r.sourceNodeId} → \${r.targetNodeId}\\n\`;
|
|
1710
|
+
}
|
|
1711
|
+
} else if (result.path) {
|
|
1712
|
+
if (result.found) {
|
|
1713
|
+
output += \`Path found (depth: \${result.path.depth}):\\n\\n\`;
|
|
1714
|
+
for (let i = 0; i < result.path.nodes.length; i++) {
|
|
1715
|
+
const n = result.path.nodes[i];
|
|
1716
|
+
output += \`\${i + 1}. **\${n.name}** (\${n.nodeType})\\n\`;
|
|
1717
|
+
}
|
|
1718
|
+
} else {
|
|
1719
|
+
output += result.message;
|
|
1720
|
+
}
|
|
1721
|
+
} else if (result.communities) {
|
|
1722
|
+
output += \`Found \${result.count} communities:\\n\\n\`;
|
|
1723
|
+
for (const c of result.communities) {
|
|
1724
|
+
output += \`- **\${c.label}**: \${c.memberCount} members (cohesion: \${(c.cohesionScore * 100).toFixed(0)}%)\\n\`;
|
|
1725
|
+
}
|
|
1726
|
+
} else {
|
|
1727
|
+
output += JSON.stringify(result, null, 2);
|
|
1728
|
+
}
|
|
1729
|
+
return { content: [{ type: "text", text: output }] };
|
|
1730
|
+
} catch (error) {
|
|
1731
|
+
return { content: [{ type: "text", text: \`Error querying graph: \${error}\` }] };
|
|
1732
|
+
}
|
|
1733
|
+
},
|
|
1734
|
+
},
|
|
1735
|
+
];
|
|
1736
|
+
}
|
|
1737
|
+
`;
|
|
1738
|
+
}
|
|
1739
|
+
function generateMixStationTools() {
|
|
1740
|
+
return [
|
|
1741
|
+
// Mixer API Client
|
|
1742
|
+
{
|
|
1743
|
+
path: "src/lib/mixer-client.ts",
|
|
1744
|
+
content: `/**
|
|
1745
|
+
* Mixer API Client
|
|
1746
|
+
*
|
|
1747
|
+
* Provides typed access to Mixer's MCP API endpoints.
|
|
1748
|
+
* The project ID is passed via X-AgentShield-Project-Id header,
|
|
1749
|
+
* which Mixer uses to look up the associated station.
|
|
1750
|
+
*/
|
|
1751
|
+
|
|
1752
|
+
const DEFAULT_MIXER_API_URL = "https://mixer-vouched.vercel.app";
|
|
1753
|
+
|
|
1754
|
+
export interface MixerApiClient {
|
|
1755
|
+
getContext: (args: { query?: string; maxTokens?: number }) => Promise<any>;
|
|
1756
|
+
search: (args: { query: string; limit?: number; mode?: string }) => Promise<any>;
|
|
1757
|
+
getInfo: () => Promise<any>;
|
|
1758
|
+
readFile: (args: { filePath: string; startLine?: number; endLine?: number }) => Promise<any>;
|
|
1759
|
+
grep: (args: { pattern: string; fileFilter?: string; caseSensitive?: boolean; maxResults?: number }) => Promise<any>;
|
|
1760
|
+
graph: (args: { action: string; nodeId?: string; targetNodeId?: string; direction?: string; hops?: number; nodeTypes?: string; limit?: number }) => Promise<any>;
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
export function createMixerClient(projectId: string, apiUrl?: string): MixerApiClient {
|
|
1764
|
+
const mixerUrl = apiUrl || DEFAULT_MIXER_API_URL;
|
|
1765
|
+
const headers = {
|
|
1766
|
+
"Content-Type": "application/json",
|
|
1767
|
+
"X-AgentShield-Project-Id": projectId,
|
|
1768
|
+
};
|
|
1769
|
+
|
|
1770
|
+
return {
|
|
1771
|
+
async getContext(args) {
|
|
1772
|
+
const params = new URLSearchParams();
|
|
1773
|
+
if (args.query) params.set("query", args.query);
|
|
1774
|
+
if (args.maxTokens) params.set("maxTokens", args.maxTokens.toString());
|
|
1775
|
+
|
|
1776
|
+
const url = \`\${mixerUrl}/api/mcp/context\${params.toString() ? "?" + params.toString() : ""}\`;
|
|
1777
|
+
const response = await fetch(url, { headers });
|
|
1778
|
+
return response.json();
|
|
1779
|
+
},
|
|
1780
|
+
|
|
1781
|
+
async search(args) {
|
|
1782
|
+
const response = await fetch(\`\${mixerUrl}/api/mcp/search\`, {
|
|
1783
|
+
method: "POST",
|
|
1784
|
+
headers,
|
|
1785
|
+
body: JSON.stringify({
|
|
1786
|
+
query: args.query,
|
|
1787
|
+
limit: args.limit || 10,
|
|
1788
|
+
mode: args.mode || "hybrid",
|
|
1789
|
+
}),
|
|
1790
|
+
});
|
|
1791
|
+
return response.json();
|
|
1792
|
+
},
|
|
1793
|
+
|
|
1794
|
+
async getInfo() {
|
|
1795
|
+
const response = await fetch(\`\${mixerUrl}/api/mcp/info\`, { headers });
|
|
1796
|
+
return response.json();
|
|
1797
|
+
},
|
|
1798
|
+
|
|
1799
|
+
async readFile(args) {
|
|
1800
|
+
const params = new URLSearchParams();
|
|
1801
|
+
params.set("filePath", args.filePath);
|
|
1802
|
+
if (args.startLine) params.set("startLine", args.startLine.toString());
|
|
1803
|
+
if (args.endLine) params.set("endLine", args.endLine.toString());
|
|
1804
|
+
|
|
1805
|
+
const response = await fetch(\`\${mixerUrl}/api/mcp/read?\${params.toString()}\`, { headers });
|
|
1806
|
+
return response.json();
|
|
1807
|
+
},
|
|
1808
|
+
|
|
1809
|
+
async grep(args) {
|
|
1810
|
+
const params = new URLSearchParams();
|
|
1811
|
+
params.set("pattern", args.pattern);
|
|
1812
|
+
if (args.fileFilter) params.set("fileFilter", args.fileFilter);
|
|
1813
|
+
if (args.caseSensitive) params.set("caseSensitive", "true");
|
|
1814
|
+
if (args.maxResults) params.set("maxResults", args.maxResults.toString());
|
|
1815
|
+
|
|
1816
|
+
const response = await fetch(\`\${mixerUrl}/api/mcp/grep?\${params.toString()}\`, { headers });
|
|
1817
|
+
return response.json();
|
|
1818
|
+
},
|
|
1819
|
+
|
|
1820
|
+
async graph(args) {
|
|
1821
|
+
const params = new URLSearchParams();
|
|
1822
|
+
params.set("action", args.action);
|
|
1823
|
+
if (args.nodeId) params.set("nodeId", args.nodeId);
|
|
1824
|
+
if (args.targetNodeId) params.set("targetNodeId", args.targetNodeId);
|
|
1825
|
+
if (args.direction) params.set("direction", args.direction);
|
|
1826
|
+
if (args.hops) params.set("hops", args.hops.toString());
|
|
1827
|
+
if (args.nodeTypes) params.set("nodeTypes", args.nodeTypes);
|
|
1828
|
+
if (args.limit) params.set("limit", args.limit.toString());
|
|
1829
|
+
|
|
1830
|
+
const response = await fetch(\`\${mixerUrl}/api/mcp/graph?\${params.toString()}\`, { headers });
|
|
1831
|
+
return response.json();
|
|
1832
|
+
},
|
|
1833
|
+
};
|
|
1834
|
+
}
|
|
1835
|
+
`,
|
|
1836
|
+
encoding: "utf-8",
|
|
1837
|
+
},
|
|
1838
|
+
];
|
|
1839
|
+
}
|
|
1406
1840
|
function generateDeployWorkflow() {
|
|
1407
1841
|
// Note: YAML values containing ${{ }} must be quoted to avoid parsing issues
|
|
1408
1842
|
return `name: Deploy to Cloudflare
|