| /** | ||
| * C# /.NET detection — CONTENT-AWARE .csproj classification. | ||
| * | ||
| * A .csproj alone does NOT mean Web API / ASP.NET. Microsoft encodes kind in | ||
| * Project Sdk, then OutputType / Use* props / PackageReference / FrameworkReference. | ||
| * Kill line: .csproj alone ≠ type. | ||
| * | ||
| * Same composition pattern as go.ts / dart.ts: knowledge in csharp-detection.json, | ||
| * logic here. Turbo-Cat + scanner both call detectCsharpProject so they agree. | ||
| */ | ||
| /** FAF project types we emit (aligned with Go + mobile for MAUI). */ | ||
| export type CsharpAppType = 'mcp' | 'backend' | 'cli' | 'library' | 'mobile'; | ||
| export interface CsharpProject { | ||
| appType: CsharpAppType; | ||
| /** Assembly / project name from filename, or ''. */ | ||
| projectName: string; | ||
| /** TargetFramework(s) raw string if present. */ | ||
| targetFramework: string; | ||
| /** Sdk attribute (e.g. Microsoft.NET.Sdk.Web). */ | ||
| sdk: string; | ||
| /** Primary framework label (ASP.NET Core / Worker / Cobra-equivalent / …). */ | ||
| framework: string; | ||
| /** Human-readable rationale for the .faf `# found:` comment (Glass Hood). */ | ||
| found: string; | ||
| } | ||
| export interface ParsedCsproj { | ||
| sdk: string; | ||
| outputType: string; | ||
| targetFramework: string; | ||
| isTestProject: boolean; | ||
| useMaui: boolean; | ||
| useWpf: boolean; | ||
| useWindowsForms: boolean; | ||
| packages: Set<string>; | ||
| frameworkRefs: Set<string>; | ||
| } | ||
| /** Parse the load-bearing fields of an SDK-style .csproj (regex — adequate for detection). */ | ||
| export declare function parseCsproj(content: string): ParsedCsproj; | ||
| /** Classify a single parsed csproj. */ | ||
| export declare function classifyCsproj(parsed: ParsedCsproj, projectFileName: string): Omit<CsharpProject, 'projectName'> & { | ||
| projectName: string; | ||
| }; | ||
| /** List root-level .csproj filenames in a directory. */ | ||
| export declare function listRootCsprojs(dir: string): string[]; | ||
| /** | ||
| * Classify a C# project directory from root-level .csproj file(s). | ||
| * Multiple projects: pick highest-priority classification (MCP > mobile > backend > cli > library). | ||
| * Returns null if no .csproj at this directory level. | ||
| */ | ||
| export declare function detectCsharpProject(dir: string): CsharpProject | null; |
+1
-1
| { | ||
| "name": "faf-cli", | ||
| "version": "7.3.0", | ||
| "version": "7.4.0", | ||
| "description": "Persistent AI context + memory — .faf and .fafm, IANA-registered. Anthropic-merged.", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+5
-5
@@ -133,11 +133,11 @@ <!-- faf: faf-cli | TypeScript | cli | CLI for the .faf and .fafm IANA-registered formats — AI context + memory that versions with your code --> | ||
| ### What's New in v7.3.0 — The Go Edition | ||
| ### What's New in v7.4.0 — The C# Edition | ||
| - **Content-aware Go** — `go.mod` alone is never “backend.” FAF classifies MCP · Gin/Echo/Fiber/Chi · Cobra/cmd CLI · pure library. | ||
| - **Same pattern as Dart** — one knowledge file, one classifier; composed across surfaces. | ||
| - **Work-surface Trophy glyph ✪** — 100% Proof Seal on CLI/docs (social still 🏆). | ||
| - **Content-aware C#** — `.csproj alone ≠ type.` Sdk-first: ASP.NET Core · Worker · MCP · CLI · class library. Classlibs stay classlibs. | ||
| - **MCP first-class** — `ModelContextProtocol*` on NuGet (official C# SDK). | ||
| - **Go (7.3.0)** — `go.mod alone ≠ backend` still ships. | ||
| ### Dart/Flutter — knowledge v2 in 7.2.1 | ||
| Same content-aware detection as the [Dart Edition](https://faf.one/blog/claude-dart-edition) (Flutter ≠ every `pubspec`). **7.2.1** refreshes the single-source knowledge table: Riverpod annotation, Flutter Hooks, Beamer, Routemaster, Jaspr, Relic, and more MCP package names — still **one classifier**, composed by the MCPs. | ||
| **pubspec ≠ Flutter — pure Dart stays Dart.** Same content-aware detection as the [Dart Edition](https://faf.one/blog/dart-edition). **7.2.1** refreshes the single-source knowledge table: Riverpod annotation, Flutter Hooks, Beamer, Routemaster, Jaspr, Relic, and more MCP package names — still **one classifier**, composed by the MCPs. | ||
@@ -144,0 +144,0 @@ --- |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
3165630
1.69%41
2.5%4358
2.28%