archprint 0.8.3 → 0.9.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.
Files changed (83) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +81 -11
  3. package/dist/cli/adopted-rules.d.ts +49 -0
  4. package/dist/cli/adopted-rules.d.ts.map +1 -0
  5. package/dist/cli/adopted-rules.js +159 -0
  6. package/dist/cli/adopted-rules.js.map +1 -0
  7. package/dist/cli/check-diff.d.ts +19 -0
  8. package/dist/cli/check-diff.d.ts.map +1 -0
  9. package/dist/cli/check-diff.js +41 -0
  10. package/dist/cli/check-diff.js.map +1 -0
  11. package/dist/cli/check-evaluate.d.ts +10 -0
  12. package/dist/cli/check-evaluate.d.ts.map +1 -0
  13. package/dist/cli/check-evaluate.js +83 -0
  14. package/dist/cli/check-evaluate.js.map +1 -0
  15. package/dist/cli/check-git.d.ts +12 -0
  16. package/dist/cli/check-git.d.ts.map +1 -0
  17. package/dist/cli/check-git.js +87 -0
  18. package/dist/cli/check-git.js.map +1 -0
  19. package/dist/cli/check-locate.d.ts +3 -0
  20. package/dist/cli/check-locate.d.ts.map +1 -0
  21. package/dist/cli/check-locate.js +29 -0
  22. package/dist/cli/check-locate.js.map +1 -0
  23. package/dist/cli/check.d.ts +41 -0
  24. package/dist/cli/check.d.ts.map +1 -0
  25. package/dist/cli/check.js +230 -0
  26. package/dist/cli/check.js.map +1 -0
  27. package/dist/cli/generate.d.ts +5 -0
  28. package/dist/cli/generate.d.ts.map +1 -1
  29. package/dist/cli/generate.js +37 -11
  30. package/dist/cli/generate.js.map +1 -1
  31. package/dist/cli/git-env.d.ts +2 -0
  32. package/dist/cli/git-env.d.ts.map +1 -0
  33. package/dist/cli/git-env.js +14 -0
  34. package/dist/cli/git-env.js.map +1 -0
  35. package/dist/cli/layout.d.ts +2 -0
  36. package/dist/cli/layout.d.ts.map +1 -1
  37. package/dist/cli/layout.js +3 -1
  38. package/dist/cli/layout.js.map +1 -1
  39. package/dist/cli/migrate.d.ts.map +1 -1
  40. package/dist/cli/migrate.js +1 -0
  41. package/dist/cli/migrate.js.map +1 -1
  42. package/dist/cli/program.d.ts.map +1 -1
  43. package/dist/cli/program.js +52 -0
  44. package/dist/cli/program.js.map +1 -1
  45. package/dist/cli/report.d.ts.map +1 -1
  46. package/dist/cli/report.js +2 -1
  47. package/dist/cli/report.js.map +1 -1
  48. package/dist/cli/rule-guidance.js +3 -3
  49. package/dist/cli/rule-guidance.js.map +1 -1
  50. package/dist/cli/scan.d.ts.map +1 -1
  51. package/dist/cli/scan.js +6 -3
  52. package/dist/cli/scan.js.map +1 -1
  53. package/dist/detector/marker-inference.d.ts +3 -0
  54. package/dist/detector/marker-inference.d.ts.map +1 -1
  55. package/dist/detector/marker-inference.js +26 -18
  56. package/dist/detector/marker-inference.js.map +1 -1
  57. package/dist/detector/pattern-detector.d.ts +1 -0
  58. package/dist/detector/pattern-detector.d.ts.map +1 -1
  59. package/dist/detector/pattern-detector.js +7 -4
  60. package/dist/detector/pattern-detector.js.map +1 -1
  61. package/dist/generator/public-api-emitters.d.ts +1 -0
  62. package/dist/generator/public-api-emitters.d.ts.map +1 -1
  63. package/dist/generator/public-api-emitters.js +2 -1
  64. package/dist/generator/public-api-emitters.js.map +1 -1
  65. package/dist/generator/rule-generator.d.ts.map +1 -1
  66. package/dist/generator/rule-generator.js +51 -29
  67. package/dist/generator/rule-generator.js.map +1 -1
  68. package/dist/mcp/server.d.ts +3 -3
  69. package/dist/mcp/server.d.ts.map +1 -1
  70. package/dist/mcp/server.js +12 -3
  71. package/dist/mcp/server.js.map +1 -1
  72. package/dist/mcp/tools.d.ts.map +1 -1
  73. package/dist/mcp/tools.js +12 -1
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/scanner/file-walker.d.ts +5 -0
  76. package/dist/scanner/file-walker.d.ts.map +1 -1
  77. package/dist/scanner/file-walker.js +8 -2
  78. package/dist/scanner/file-walker.js.map +1 -1
  79. package/dist/scanner/import-graph.d.ts +2 -0
  80. package/dist/scanner/import-graph.d.ts.map +1 -1
  81. package/dist/scanner/import-graph.js +1 -1
  82. package/dist/scanner/import-graph.js.map +1 -1
  83. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/cli/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/cli/scan.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,16 @@ export interface UiSegmentEvidence {
7
7
  }
8
8
  export interface InferredMarkers {
9
9
  markers: RegExp[];
10
+ examples: string[];
10
11
  segments: string[];
11
12
  evidence: UiSegmentEvidence[];
12
13
  }
13
14
  export declare function inferUiLayerMarkers(appDir: string): InferredMarkers;
14
15
  export declare const KNOWN_DB_LIBRARIES: readonly RegExp[];
16
+ export declare const KNOWN_DB_EXAMPLES: readonly string[];
15
17
  export interface InferredDbMarkers {
16
18
  markers: RegExp[];
19
+ examples: string[];
17
20
  libraries: RegExp[];
18
21
  wrappers: string[];
19
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marker-inference.d.ts","sourceRoot":"","sources":["../../src/detector/marker-inference.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAuDD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAgDnE;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAe/C,CAAC;AAyBF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA8BD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAiEtE"}
1
+ {"version":3,"file":"marker-inference.d.ts","sourceRoot":"","sources":["../../src/detector/marker-inference.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAuDD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAqDnE;AAmBD,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAmD,CAAC;AACpG,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAmD,CAAC;AAyBnG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA8BD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAkEtE"}
@@ -74,7 +74,7 @@ export function inferUiLayerMarkers(appDir) {
74
74
  const componentSet = new Set(components);
75
75
  const others = files.filter((file) => !componentSet.has(file));
76
76
  if (components.length < 5)
77
- return { markers: [], segments: [], evidence: [] };
77
+ return { markers: [], examples: [], segments: [], evidence: [] };
78
78
  const directorySegments = (relativePath) => [
79
79
  ...new Set(relativePath.split('/').slice(0, -1)),
80
80
  ];
@@ -107,28 +107,35 @@ export function inferUiLayerMarkers(appDir) {
107
107
  !entry.segment.includes('.'))
108
108
  .sort((a, b) => b.coverage * b.specificity - a.coverage * a.specificity);
109
109
  if (candidates.length === 0)
110
- return { markers: [], segments: [], evidence: [] };
110
+ return { markers: [], examples: [], segments: [], evidence: [] };
111
111
  const top = candidates[0];
112
112
  const segments = [top.segment];
113
113
  const markers = segments.map((segment) => new RegExp(`(^|/)${escapeRegExp(segment)}(/|$)`));
114
- return { markers, segments, evidence: candidates.slice(0, 8) };
114
+ return {
115
+ markers,
116
+ examples: segments.map((segment) => `@/${segment}/example`),
117
+ segments,
118
+ evidence: candidates.slice(0, 8),
119
+ };
115
120
  }
116
- export const KNOWN_DB_LIBRARIES = [
117
- /@prisma\/(client|adapter-)/,
118
- /drizzle-orm/,
119
- /(^|\/)typeorm(\/|$)/,
120
- /(^|\/)mongoose(\/|$)/,
121
- /(^|\/)sequelize(\/|$)/,
122
- /@mikro-orm\//,
123
- /(^|\/)kysely(\/|$)/,
124
- /(^|\/)mongodb(\/|$)/,
125
- /(^|\/)pg(\/|$)/,
126
- /(^|\/)postgres(\/|$)/,
127
- /(^|\/)mysql2(\/|$)/,
128
- /@planetscale\/database/,
129
- /@neondatabase\/serverless/,
130
- /better-sqlite3/,
121
+ const DB_LIBRARIES = [
122
+ { pattern: /@prisma\/(client|adapter-)/, example: '@prisma/client' },
123
+ { pattern: /drizzle-orm/, example: 'drizzle-orm' },
124
+ { pattern: /(^|\/)typeorm(\/|$)/, example: 'typeorm' },
125
+ { pattern: /(^|\/)mongoose(\/|$)/, example: 'mongoose' },
126
+ { pattern: /(^|\/)sequelize(\/|$)/, example: 'sequelize' },
127
+ { pattern: /@mikro-orm\//, example: '@mikro-orm/core' },
128
+ { pattern: /(^|\/)kysely(\/|$)/, example: 'kysely' },
129
+ { pattern: /(^|\/)mongodb(\/|$)/, example: 'mongodb' },
130
+ { pattern: /(^|\/)pg(\/|$)/, example: 'pg' },
131
+ { pattern: /(^|\/)postgres(\/|$)/, example: 'postgres' },
132
+ { pattern: /(^|\/)mysql2(\/|$)/, example: 'mysql2' },
133
+ { pattern: /@planetscale\/database/, example: '@planetscale/database' },
134
+ { pattern: /@neondatabase\/serverless/, example: '@neondatabase/serverless' },
135
+ { pattern: /better-sqlite3/, example: 'better-sqlite3' },
131
136
  ];
137
+ export const KNOWN_DB_LIBRARIES = DB_LIBRARIES.map((library) => library.pattern);
138
+ export const KNOWN_DB_EXAMPLES = DB_LIBRARIES.map((library) => library.example);
132
139
  const DB_CLIENT_CONSTRUCTOR = /new PrismaClient\s*\(|\bdrizzle\s*\(|new DataSource\s*\(|new Sequelize\s*\(|new Kysely\s*\(|MikroORM\.init\s*\(|mongoose\.(connect|createConnection)\s*\(/;
133
140
  const DB_CLIENT_CONSTRUCTOR_GENERIC = /new Pool\s*\(|new Client\s*\(|\bpostgres\s*\(|create(Pool|Connection)\s*\(|new Database\s*\(/;
134
141
  const DB_TOKENS = [
@@ -229,6 +236,7 @@ export function inferDbClientMarkers(appDir) {
229
236
  }
230
237
  return {
231
238
  markers: [...KNOWN_DB_LIBRARIES, ...wrapperMarkers],
239
+ examples: [...[...wrappers].sort(), ...KNOWN_DB_EXAMPLES],
232
240
  libraries: [...KNOWN_DB_LIBRARIES],
233
241
  wrappers: [...wrappers],
234
242
  };
@@ -1 +1 @@
1
- {"version":3,"file":"marker-inference.js","sourceRoot":"","sources":["../../src/detector/marker-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marker-inference.js","sourceRoot":"","sources":["../../src/detector/marker-inference.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface PatternConfig {
9
9
  description: string;
10
10
  roles: readonly Role[];
11
11
  forbidden: readonly RegExp[];
12
+ examples?: readonly string[];
12
13
  }
13
14
  export interface Violation {
14
15
  file: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,mBAAmB,EAAE,SAAS,IAAI,EAM9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,eAAe,CAyB5F;AAgCD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,eAAe,EAAE,CAwCnB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,CAcnD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAWrD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9C,eAAe,CASjB"}
1
+ {"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,mBAAmB,EAAE,SAAS,IAAI,EAM9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,eAAe,CAyB5F;AAgCD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,eAAe,EAAE,CAwCnB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,CAenD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAYrD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9C,eAAe,CAUjB"}
@@ -1,6 +1,6 @@
1
1
  import { createImportAnalyzer, walkRepo } from '../scanner/file-walker.js';
2
2
  import { evaluateGate } from './confidence-gate.js';
3
- import { inferDbClientMarkers, inferUiLayerMarkers, KNOWN_DB_LIBRARIES, } from './marker-inference.js';
3
+ import { inferDbClientMarkers, inferUiLayerMarkers, KNOWN_DB_EXAMPLES, KNOWN_DB_LIBRARIES, } from './marker-inference.js';
4
4
  export const REQUEST_ENTRY_ROLES = [
5
5
  'CONTROLLER',
6
6
  'ROUTE_HANDLER',
@@ -107,9 +107,10 @@ export function detectUiLayerInServerEntry(appDir) {
107
107
  const result = detectForbiddenImport(appDir, {
108
108
  id: 'AP-002',
109
109
  name: 'no-ui-layer-in-server-entry',
110
- description: 'A server-entry file must not import from the UI layer (inferred from where components live in this repo).',
110
+ description: 'A request handler must not import UI components (found from where components live in this repo).',
111
111
  roles: REQUEST_ENTRY_ROLES,
112
112
  forbidden: inferredUi.markers,
113
+ examples: inferredUi.examples,
113
114
  });
114
115
  if (inferredUi.markers.length === 0) {
115
116
  result.gate = { ...result.gate, status: 'REJECT', passes: false };
@@ -121,9 +122,10 @@ export function detectDbClientInRequestEntry(appDir) {
121
122
  const result = detectForbiddenImport(appDir, {
122
123
  id: 'AP-001',
123
124
  name: 'no-db-client-in-request-entry',
124
- description: 'A request-entry file must not import the database client directly; go through a service or data-access layer.',
125
+ description: 'A request handler must not import the database client directly; go through a service or data-access layer.',
125
126
  roles: REQUEST_ENTRY_ROLES,
126
127
  forbidden: inferredDb.markers,
128
+ examples: inferredDb.examples,
127
129
  });
128
130
  return { ...result, inferredDb };
129
131
  }
@@ -131,9 +133,10 @@ export function detectNoDbInRequestEntry(appDir, options = {}) {
131
133
  return detectForbiddenImport(appDir, {
132
134
  id: 'AP-001',
133
135
  name: 'no-direct-db-in-request-entry',
134
- description: 'Request-entry files must not import a database client directly; go through a service or data-access layer.',
136
+ description: 'Request handlers must not import a database client directly; go through a service or data-access layer.',
135
137
  roles: REQUEST_ENTRY_ROLES,
136
138
  forbidden: options.dbMarkers ?? DEFAULT_DB_MARKERS,
139
+ ...(options.dbMarkers === undefined && { examples: KNOWN_DB_EXAMPLES }),
137
140
  });
138
141
  }
139
142
  //# sourceMappingURL=pattern-detector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { GenerationStatus } from '../detector/confidence-gate.js';
2
2
  import type { PublicApiGroup } from '../detector/public-api-detector.js';
3
+ export declare const publicApiRuleName: (dir: string) => string;
3
4
  export interface DeepImportRule {
4
5
  name: string;
5
6
  comment: string;
@@ -1 +1 @@
1
- {"version":3,"file":"public-api-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/public-api-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAUzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,OAAO,GAAE,SAAS,gBAAgB,EAAa,GAC9C,gBAAgB,CAclB"}
1
+ {"version":3,"file":"public-api-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/public-api-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOzE,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,MAAuC,CAAC;AAKxF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,OAAO,GAAE,SAAS,gBAAgB,EAAa,GAC9C,gBAAgB,CAclB"}
@@ -1,6 +1,7 @@
1
1
  import { exemptDepcruiseFrom, TEST_ROLE_REGEX } from './depcruise-exempt.js';
2
2
  const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3
3
  const slug = (dir) => dir.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-|-$/g, '');
4
+ export const publicApiRuleName = (dir) => `no-deep-import-${slug(dir)}`;
4
5
  const confidencePct = (group) => `${(group.gate.conditions.confidence.value * 100).toFixed(0)}%`;
5
6
  export function toDependencyCruiserPublicApi(groups, include = ['AUTO']) {
6
7
  const forbidden = groups
@@ -8,7 +9,7 @@ export function toDependencyCruiserPublicApi(groups, include = ['AUTO']) {
8
9
  .map((group) => {
9
10
  const dir = escapeRegExp(group.dir);
10
11
  return {
11
- name: `no-deep-import-${slug(group.dir)}`,
12
+ name: publicApiRuleName(group.dir),
12
13
  comment: `Archprint inferred public API: files outside "${group.dir}" import it through its barrel (${group.consumerCount - group.deepImporterCount}/${group.consumerCount} consumers); deep imports into its internals are forbidden (confidence ${confidencePct(group)}).`,
13
14
  severity: 'error',
14
15
  from: { pathNot: exemptDepcruiseFrom([TEST_ROLE_REGEX, `^${dir}/`], group.violations) },
@@ -1 +1 @@
1
- {"version":3,"file":"public-api-emitters.js","sourceRoot":"","sources":["../../src/generator/public-api-emitters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE/F,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAU,EAAE,CACtD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAclE,MAAM,UAAU,4BAA4B,CAC1C,MAAiC,EACjC,UAAuC,CAAC,MAAM,CAAC;IAE/C,MAAM,SAAS,GAAG,MAAM;SACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,kBAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACzC,OAAO,EAAE,iDAAiD,KAAK,CAAC,GAAG,mCAAmC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,0EAA0E,aAAa,CAAC,KAAK,CAAC,IAAI;YAC5Q,QAAQ,EAAE,OAAgB;YAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YACvF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,oBAAoB,EAAE;SAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"public-api-emitters.js","sourceRoot":"","sources":["../../src/generator/public-api-emitters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAExF,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAU,EAAE,CACtD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAclE,MAAM,UAAU,4BAA4B,CAC1C,MAAiC,EACjC,UAAuC,CAAC,MAAM,CAAC;IAE/C,MAAM,SAAS,GAAG,MAAM;SACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC;YAClC,OAAO,EAAE,iDAAiD,KAAK,CAAC,GAAG,mCAAmC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,0EAA0E,aAAa,CAAC,KAAK,CAAC,IAAI;YAC5Q,QAAQ,EAAE,OAAgB;YAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YACvF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,oBAAoB,EAAE;SAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-generator.d.ts","sourceRoot":"","sources":["../../src/generator/rule-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACvF;AAmKD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,UAAU,SAAK,GACd,aAAa,CAUf;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,SAAK,GACd,MAAM,CASR"}
1
+ {"version":3,"file":"rule-generator.d.ts","sourceRoot":"","sources":["../../src/generator/rule-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACvF;AAuMD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,UAAU,SAAK,GACd,aAAa,CAWf;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,SAAK,GACd,MAAM,CASR"}
@@ -2,6 +2,26 @@ import { mkdirSync, writeFileSync } from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import { ROLE_PATTERNS } from '../scanner/role-classifier.js';
4
4
  const asRegexArray = (sources) => `[${sources.map((source) => `/${source}/`).join(', ')}]`;
5
+ const PASSING_IMPORTS = ['next/server', '@/utils/user'];
6
+ const withoutFullStop = (text) => text.replace(/\.$/, '');
7
+ const isForbidden = (config, specifier) => config.forbidden.some((pattern) => pattern.test(specifier));
8
+ function forbiddenSpecifier(config, result) {
9
+ const candidates = [
10
+ ...result.violations.map((violation) => violation.specifier),
11
+ ...(config.examples ?? []),
12
+ ];
13
+ const specifier = candidates.find((candidate) => isForbidden(config, candidate));
14
+ if (specifier === undefined) {
15
+ throw new Error(`${config.id}: no known import matches its forbidden patterns, so its failing fixture cannot be written.`);
16
+ }
17
+ return specifier;
18
+ }
19
+ function assertPassingFixtureAllowed(config) {
20
+ const clash = PASSING_IMPORTS.find((specifier) => isForbidden(config, specifier));
21
+ if (clash !== undefined) {
22
+ throw new Error(`${config.id}: its forbidden patterns match "${clash}", so its passing fixture would fail.`);
23
+ }
24
+ }
5
25
  function renderRule(config, result) {
6
26
  const entryPatterns = config.roles
7
27
  .flatMap((role) => ROLE_PATTERNS.get(role) ?? [])
@@ -15,7 +35,7 @@ function renderRule(config, result) {
15
35
  const conform = (ratio * 100).toFixed(1);
16
36
  return `/**
17
37
  * @fileoverview ${config.id} ${config.name}: GENERATED BY ARCHPRINT. Do not edit by hand.
18
- * Inferred from the real import graph: ${roleFileCount - violatingFileCount}/${roleFileCount} server-entry files (${conform}%) already follow this.
38
+ * Inferred from the real import graph: ${roleFileCount - violatingFileCount}/${roleFileCount} request handlers (${conform}%) already follow this.
19
39
  * Evidence and provenance: ./${config.name}.md
20
40
  */
21
41
  import type { Rule } from 'eslint';
@@ -57,8 +77,7 @@ const rule: Rule.RuleModule = {
57
77
  },
58
78
  schema: [],
59
79
  messages: {
60
- forbidden:
61
- '${config.id}: a server-entry file must not import the UI components/ layer (imported "{{specifier}}"). Move shared logic into a non-UI module.',
80
+ forbidden: ${JSON.stringify(`${config.id}: ${withoutFullStop(config.description)} (imported "{{specifier}}").`)},
62
81
  },
63
82
  },
64
83
  create(context) {
@@ -78,7 +97,7 @@ const rule: Rule.RuleModule = {
78
97
  export default rule;
79
98
  `;
80
99
  }
81
- function renderCard(config, result, provenance) {
100
+ function renderCard(config, result, provenance, failingSpecifier) {
82
101
  const { roleFileCount, violatingFileCount, ratio, roleConfidence } = result.stats;
83
102
  const example = result.violations[0];
84
103
  const gate = result.gate.conditions;
@@ -91,9 +110,10 @@ function renderCard(config, result, provenance) {
91
110
 
92
111
  ${config.description}
93
112
 
94
- **Scope (server-entry roles):** ${config.roles.join(', ')}. Semantics: **direct import**. A violation
95
- is a server-entry file that directly imports the \`components/\` layer. Transitive reach (importing a
96
- module that itself imports a component) is out of scope.
113
+ **Applies to request handlers:** ${config.roles.join(', ')}. A violation is a request handler that
114
+ directly imports something matching a forbidden pattern:
115
+ ${config.forbidden.map((pattern) => `\`/${pattern.source}/\``).join(', ')}. It checks **direct imports** only:
116
+ importing a module that itself imports a forbidden target is out of scope.
97
117
 
98
118
  ## Evidence (why Archprint generated this)
99
119
 
@@ -114,50 +134,52 @@ ${example
114
134
  This is a lightweight, self-contained ESLint rule. It enforces at the **import-specifier** level, which
115
135
  is narrower than the graph-based inference that generated it:
116
136
 
117
- - **Alias/barrel false negative:** an import whose specifier does not contain \`components\` but resolves
118
- to the UI layer (e.g. \`@/lib/shared-ui\` aliased to a component) is **not** caught. The detector
119
- resolves such imports to their leaf; the rule does not. A future alias-aware or dependency-cruiser
120
- emission would close this.
121
- - **External false positive:** a specifier literally containing \`components\` that resolves inside
122
- \`node_modules\` would be flagged. Not relevant to this repo, but disclosed.
123
- - **Server-entry scope:** mirrors the classifier. A file with a \`"use server"\` directive is treated as
124
- server-entry only when it is otherwise unclassified; named roles (service, repository, worker, db /
137
+ - **Alias/barrel false negative:** an import whose text matches no forbidden pattern but resolves to a
138
+ forbidden target (through an alias or a re-exporting barrel) is **not** caught. The detector resolves
139
+ such imports to the file they reach; the rule matches only the import text.
140
+ - **Text-match false positive:** an unrelated import whose text happens to match a forbidden pattern is
141
+ flagged too.
142
+ - **Request-handler scope:** mirrors the classifier. A file with a \`"use server"\` directive is treated as
143
+ a request handler only when it is otherwise unclassified; named roles (service, repository, worker, db /
125
144
  data-access, shared, test) keep their role and are out of scope.
126
145
 
127
146
  ## Fixtures
128
147
 
129
- - \`fixtures/passing.ts\`: a server-entry file that does not import the UI layer (rule stays silent).
130
- - \`fixtures/failing.ts\`: a server-entry file that imports the UI layer (rule reports).
148
+ - \`fixtures/passing.ts\`: a request handler with no forbidden import (rule stays silent).
149
+ - \`fixtures/failing.ts\`: a request handler that imports \`${failingSpecifier}\` (rule reports).
131
150
  `;
132
151
  }
133
- function renderPassingFixture() {
134
- return `// app/api/example/route.ts (PASSING): a route handler with no UI-layer import.
135
- import { NextResponse } from 'next/server';
136
- import { getUser } from '@/utils/user';
152
+ function renderPassingFixture(config) {
153
+ assertPassingFixtureAllowed(config);
154
+ const [server, user] = PASSING_IMPORTS;
155
+ return `// app/api/example/route.ts (PASSING): a request handler with no import ${config.id} forbids.
156
+ import { NextResponse } from '${server}';
157
+ import { getUser } from '${user}';
137
158
 
138
159
  export async function GET(): Promise<Response> {
139
160
  return NextResponse.json(await getUser());
140
161
  }
141
162
  `;
142
163
  }
143
- function renderFailingFixture() {
144
- return `// app/api/chat/route.ts (FAILING): a route handler importing the components/ (UI) layer.
164
+ function renderFailingFixture(config, specifier) {
165
+ return `// app/api/example/route.ts (FAILING): a request handler importing "${specifier}", which ${config.id} forbids.
145
166
  import { NextResponse } from 'next/server';
146
- import { convertToUIMessages } from '@/components/assistant-chat/helpers';
167
+ import * as forbidden from '${specifier}';
147
168
 
148
- export async function POST(): Promise<Response> {
149
- return NextResponse.json(convertToUIMessages([]));
169
+ export async function GET(): Promise<Response> {
170
+ return NextResponse.json(Object.keys(forbidden));
150
171
  }
151
172
  `;
152
173
  }
153
174
  export function generateRuleArtifacts(config, result, provenance = '') {
175
+ const failingSpecifier = forbiddenSpecifier(config, result);
154
176
  return {
155
177
  ruleName: config.name,
156
178
  files: {
157
179
  rule: renderRule(config, result),
158
- card: renderCard(config, result, provenance),
159
- passingFixture: renderPassingFixture(),
160
- failingFixture: renderFailingFixture(),
180
+ card: renderCard(config, result, provenance, failingSpecifier),
181
+ passingFixture: renderPassingFixture(config),
182
+ failingFixture: renderFailingFixture(config, failingSpecifier),
161
183
  },
162
184
  };
163
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rule-generator.js","sourceRoot":"","sources":["../../src/generator/rule-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-generator.js","sourceRoot":"","sources":["../../src/generator/rule-generator.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export declare const TOOLS: readonly [{
15
15
  readonly properties: {
16
16
  readonly path: {
17
17
  readonly type: "string";
18
- readonly description: "app or monorepo-root directory (default \".\")";
18
+ readonly description: "app or monorepo-root directory on this machine (default \".\"), not a URL";
19
19
  };
20
20
  readonly deep: {
21
21
  readonly type: "boolean";
@@ -38,7 +38,7 @@ export declare const TOOLS: readonly [{
38
38
  readonly properties: {
39
39
  readonly path: {
40
40
  readonly type: "string";
41
- readonly description: "app or monorepo-root directory (default \".\")";
41
+ readonly description: "app or monorepo-root directory on this machine (default \".\"), not a URL";
42
42
  };
43
43
  };
44
44
  };
@@ -61,7 +61,7 @@ export declare const TOOLS: readonly [{
61
61
  };
62
62
  readonly path: {
63
63
  readonly type: "string";
64
- readonly description: "app or monorepo-root directory (default \".\")";
64
+ readonly description: "app or monorepo-root directory on this machine (default \".\"), not a URL";
65
65
  };
66
66
  };
67
67
  readonly required: readonly ["id"];
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDR,CAAC;AAEX,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAe5E;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAMlF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DR,CAAC;AAEX,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAe5E;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAMlF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE"}
@@ -18,7 +18,10 @@ export const TOOLS = [
18
18
  inputSchema: {
19
19
  type: 'object',
20
20
  properties: {
21
- path: { type: 'string', description: 'app or monorepo-root directory (default ".")' },
21
+ path: {
22
+ type: 'string',
23
+ description: 'app or monorepo-root directory on this machine (default "."), not a URL',
24
+ },
22
25
  deep: {
23
26
  type: 'boolean',
24
27
  description: 'resolve imports through barrels and aliases (slower, more accurate)',
@@ -34,7 +37,10 @@ export const TOOLS = [
34
37
  inputSchema: {
35
38
  type: 'object',
36
39
  properties: {
37
- path: { type: 'string', description: 'app or monorepo-root directory (default ".")' },
40
+ path: {
41
+ type: 'string',
42
+ description: 'app or monorepo-root directory on this machine (default "."), not a URL',
43
+ },
38
44
  },
39
45
  },
40
46
  },
@@ -50,7 +56,10 @@ export const TOOLS = [
50
56
  type: 'string',
51
57
  description: 'rule label from archprint_scan, e.g. AP-002 or env-access',
52
58
  },
53
- path: { type: 'string', description: 'app or monorepo-root directory (default ".")' },
59
+ path: {
60
+ type: 'string',
61
+ description: 'app or monorepo-root directory on this machine (default "."), not a URL',
62
+ },
54
63
  },
55
64
  required: ['id'],
56
65
  },
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAevE,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,EAAE,CAM/D;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAMjE;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAmBpE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA4BvE,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,EAAE,CAM/D;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAMjE;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAmBpE"}
package/dist/mcp/tools.js CHANGED
@@ -1,11 +1,22 @@
1
1
  import * as path from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
2
3
  import { discoverAppDirs } from '../scanner/app-dirs.js';
3
4
  import { detectEnforcers } from '../scanner/enforcers.js';
4
5
  import { scanRepo } from '../cli/scan.js';
5
6
  import { summarizeRules, toScanSummary, } from '../cli/summary.js';
6
7
  import { buildRecommendations, detectStack } from '../cli/recommend.js';
8
+ const URL_SCHEME = /^[a-z][a-z0-9+.-]*:\/\//i;
9
+ const localPath = (input) => {
10
+ const trimmed = input.trim();
11
+ if (trimmed.toLowerCase().startsWith('file://'))
12
+ return fileURLToPath(trimmed);
13
+ if (URL_SCHEME.test(trimmed)) {
14
+ throw new Error(`"${input}" is a URL, but this server reads directories on the machine it runs on. Clone the repository and pass its directory, or run \`archprint mcp --http\` to scan a public repository by URL.`);
15
+ }
16
+ return trimmed;
17
+ };
7
18
  function resolveAppDirs(input) {
8
- const root = path.resolve(input);
19
+ const root = path.resolve(localPath(input));
9
20
  const dirs = discoverAppDirs(root);
10
21
  if (dirs.length === 0) {
11
22
  throw new Error(`No tsconfig.json found under ${root}. Point archprint at an app directory (a directory with a tsconfig.json); a monorepo root is fine.`);