@arcbridge/mcp-server 0.3.3 → 0.4.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/index.js CHANGED
@@ -42,8 +42,8 @@ function registerInitProject(server, ctx) {
42
42
  "Initialize ArcBridge in a project directory. Creates .arcbridge/ with arc42 documentation, phase plan, agent roles, SQLite database, and platform-specific configs.",
43
43
  {
44
44
  name: z.string().min(1).describe("Project name"),
45
- template: z.enum(["nextjs-app-router", "react-vite", "api-service", "dotnet-webapi", "unity-game"]).default("nextjs-app-router").describe(
46
- "Project template: nextjs-app-router (Next.js with App Router, SSR/SSG), react-vite (React SPA with Vite, client-only), api-service (Node.js API with Express/Fastify/Hono), dotnet-webapi (ASP.NET Core Web API, C#), unity-game (Unity game project, C#, code-heavy)"
45
+ template: z.enum(["nextjs-app-router", "react-vite", "api-service", "dotnet-webapi", "unity-game", "angular-app"]).default("nextjs-app-router").describe(
46
+ "Project template: nextjs-app-router (Next.js with App Router, SSR/SSG), react-vite (React SPA with Vite, client-only), angular-app (Angular with standalone components, TypeScript), api-service (Node.js API with Express/Fastify/Hono), dotnet-webapi (ASP.NET Core Web API, C#), unity-game (Unity game project, C#, code-heavy)"
47
47
  ),
48
48
  features: z.array(z.enum(["auth", "database", "api"])).default([]).describe("Features to scaffold"),
49
49
  quality_priorities: z.array(QualityCategorySchema).default(["security", "performance", "accessibility", "maintainability"]).describe(QUALITY_PRIORITIES_DESCRIPTION),
@@ -172,7 +172,7 @@ Use \`arcbridge_get_project_status\` to see the current state.`
172
172
  `- **Dependencies indexed:** ${indexResult.dependenciesIndexed}`,
173
173
  `- **Components analyzed:** ${indexResult.componentsAnalyzed}`,
174
174
  `- **Routes analyzed:** ${indexResult.routesAnalyzed}`
175
- ] : [input.template === "dotnet-webapi" ? `- **Code indexing:** not available yet for .NET projects (C# indexer planned)` : `- **Code indexing:** skipped (no tsconfig.json found \u2014 run \`arcbridge_reindex\` later)`],
175
+ ] : [input.template === "dotnet-webapi" || input.template === "unity-game" ? `- **Code indexing:** run \`arcbridge_reindex\` to index C# symbols (tree-sitter or Roslyn)` : `- **Code indexing:** skipped (no tsconfig.json found \u2014 run \`arcbridge_reindex\` later)`],
176
176
  "",
177
177
  "## Files",
178
178
  "",
@@ -247,7 +247,7 @@ function textResult(text) {
247
247
  };
248
248
  }
249
249
  function escapeLike(value) {
250
- return value.replace(/%/g, "\\%").replace(/_/g, "\\_");
250
+ return value.replace(/\\/g, "\\\\").replace(/%/g, "\\%").replace(/_/g, "\\_");
251
251
  }
252
252
  function safeParseJson(value, fallback) {
253
253
  if (value === null || value === void 0) return fallback;
@@ -2689,7 +2689,7 @@ function generateProposals(db, blocks, changedFiles, _projectRoot) {
2689
2689
  for (const cp of paths) {
2690
2690
  const prefix = normalizeCodePath(cp);
2691
2691
  if (cf.path.startsWith(prefix)) {
2692
- const remaining = db.prepare("SELECT 1 FROM symbols WHERE file_path LIKE ? LIMIT 1").get(`${prefix}%`);
2692
+ const remaining = db.prepare("SELECT 1 FROM symbols WHERE file_path LIKE ? ESCAPE '\\' LIMIT 1").get(`${escapeLike(prefix)}%`);
2693
2693
  if (!remaining) {
2694
2694
  proposals.push({
2695
2695
  section: "05 Building Block View",