@nxuss/lemma 1.32.0 → 1.34.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 (183) hide show
  1. package/README.md +16 -2
  2. package/dashboard/README.md +28 -332
  3. package/dashboard/dist/assets/{index-Dh-whqJ7.js → index-euG1IvQ7.js} +82 -82
  4. package/dashboard/dist/index.html +1 -1
  5. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  6. package/dist/cjs/cli/lemma-proxy.js +20 -1
  7. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  8. package/dist/cjs/language-core/contracts/CapabilityMatrix.d.ts +10 -0
  9. package/dist/cjs/language-core/contracts/CapabilityMatrix.d.ts.map +1 -0
  10. package/dist/cjs/language-core/contracts/CapabilityMatrix.js +70 -0
  11. package/dist/cjs/language-core/contracts/CapabilityMatrix.js.map +1 -0
  12. package/dist/cjs/language-core/detection/detectProjectType.d.ts +17 -0
  13. package/dist/cjs/language-core/detection/detectProjectType.d.ts.map +1 -0
  14. package/dist/cjs/language-core/detection/detectProjectType.js +186 -0
  15. package/dist/cjs/language-core/detection/detectProjectType.js.map +1 -0
  16. package/dist/cjs/language-core/registry/adapterRegistry.d.ts +11 -0
  17. package/dist/cjs/language-core/registry/adapterRegistry.d.ts.map +1 -0
  18. package/dist/cjs/language-core/registry/adapterRegistry.js +45 -0
  19. package/dist/cjs/language-core/registry/adapterRegistry.js.map +1 -0
  20. package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.d.ts +24 -0
  21. package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.d.ts.map +1 -0
  22. package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.js +199 -0
  23. package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.js.map +1 -0
  24. package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts +37 -0
  25. package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts.map +1 -0
  26. package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.js +51 -0
  27. package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.js.map +1 -0
  28. package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.d.ts +25 -0
  29. package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.d.ts.map +1 -0
  30. package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.js +241 -0
  31. package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.js.map +1 -0
  32. package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.d.ts +18 -0
  33. package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.d.ts.map +1 -0
  34. package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.js +214 -0
  35. package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.js.map +1 -0
  36. package/dist/cjs/languages/csharp/csharpSymbols.d.ts +33 -0
  37. package/dist/cjs/languages/csharp/csharpSymbols.d.ts.map +1 -0
  38. package/dist/cjs/languages/csharp/csharpSymbols.js +274 -0
  39. package/dist/cjs/languages/csharp/csharpSymbols.js.map +1 -0
  40. package/dist/cjs/mcp/cognitiveMap.d.ts +39 -10
  41. package/dist/cjs/mcp/cognitiveMap.d.ts.map +1 -1
  42. package/dist/cjs/mcp/cognitiveMap.js +488 -31
  43. package/dist/cjs/mcp/cognitiveMap.js.map +1 -1
  44. package/dist/cjs/mcp/index.js +6 -0
  45. package/dist/cjs/mcp/index.js.map +1 -1
  46. package/dist/cjs/mcp/tools/analysis.d.ts.map +1 -1
  47. package/dist/cjs/mcp/tools/analysis.js +9 -0
  48. package/dist/cjs/mcp/tools/analysis.js.map +1 -1
  49. package/dist/cjs/mcp/tools/codenav.d.ts.map +1 -1
  50. package/dist/cjs/mcp/tools/codenav.js +45 -76
  51. package/dist/cjs/mcp/tools/codenav.js.map +1 -1
  52. package/dist/cjs/mcp/tools/context-tools.d.ts.map +1 -1
  53. package/dist/cjs/mcp/tools/context-tools.js +28 -0
  54. package/dist/cjs/mcp/tools/context-tools.js.map +1 -1
  55. package/dist/cjs/mcp/tools/depgraph.d.ts.map +1 -1
  56. package/dist/cjs/mcp/tools/depgraph.js +15 -0
  57. package/dist/cjs/mcp/tools/depgraph.js.map +1 -1
  58. package/dist/cjs/mcp/tools/dev-utils.d.ts.map +1 -1
  59. package/dist/cjs/mcp/tools/dev-utils.js +6 -0
  60. package/dist/cjs/mcp/tools/dev-utils.js.map +1 -1
  61. package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -1
  62. package/dist/cjs/mcp/tools/devtools.js +51 -39
  63. package/dist/cjs/mcp/tools/devtools.js.map +1 -1
  64. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  65. package/dist/cjs/mcp/tools/memory.js +10 -0
  66. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  67. package/dist/cjs/mcp/tools/misc.d.ts.map +1 -1
  68. package/dist/cjs/mcp/tools/misc.js +11 -0
  69. package/dist/cjs/mcp/tools/misc.js.map +1 -1
  70. package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -1
  71. package/dist/cjs/mcp/tools/refactor.js +9 -0
  72. package/dist/cjs/mcp/tools/refactor.js.map +1 -1
  73. package/dist/cjs/mcp/tools.d.ts +1 -0
  74. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  75. package/dist/cjs/mcp/tools.js +44 -7
  76. package/dist/cjs/mcp/tools.js.map +1 -1
  77. package/dist/cjs/proxy/DebuggerState.d.ts +3 -0
  78. package/dist/cjs/proxy/DebuggerState.d.ts.map +1 -0
  79. package/dist/cjs/proxy/DebuggerState.js +18 -0
  80. package/dist/cjs/proxy/DebuggerState.js.map +1 -0
  81. package/dist/cjs/subconscious/TheBrainV2.d.ts +11 -0
  82. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  83. package/dist/cjs/subconscious/TheBrainV2.js +8 -0
  84. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  85. package/dist/cjs/utils/SearchCache.d.ts +2 -2
  86. package/dist/cjs/utils/SearchCache.d.ts.map +1 -1
  87. package/dist/cjs/utils/SearchCache.js +6 -6
  88. package/dist/cjs/utils/SearchCache.js.map +1 -1
  89. package/dist/cjs/utils/WorkspaceSearch.d.ts +3 -1
  90. package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
  91. package/dist/cjs/utils/WorkspaceSearch.js +5 -2
  92. package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
  93. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  94. package/dist/esm/cli/lemma-proxy.js +20 -1
  95. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  96. package/dist/esm/language-core/contracts/CapabilityMatrix.d.ts +10 -0
  97. package/dist/esm/language-core/contracts/CapabilityMatrix.d.ts.map +1 -0
  98. package/dist/esm/language-core/contracts/CapabilityMatrix.js +66 -0
  99. package/dist/esm/language-core/contracts/CapabilityMatrix.js.map +1 -0
  100. package/dist/esm/language-core/detection/detectProjectType.d.ts +17 -0
  101. package/dist/esm/language-core/detection/detectProjectType.d.ts.map +1 -0
  102. package/dist/esm/language-core/detection/detectProjectType.js +150 -0
  103. package/dist/esm/language-core/detection/detectProjectType.js.map +1 -0
  104. package/dist/esm/language-core/registry/adapterRegistry.d.ts +11 -0
  105. package/dist/esm/language-core/registry/adapterRegistry.d.ts.map +1 -0
  106. package/dist/esm/language-core/registry/adapterRegistry.js +41 -0
  107. package/dist/esm/language-core/registry/adapterRegistry.js.map +1 -0
  108. package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.d.ts +24 -0
  109. package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.d.ts.map +1 -0
  110. package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.js +162 -0
  111. package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.js.map +1 -0
  112. package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts +37 -0
  113. package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts.map +1 -0
  114. package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.js +44 -0
  115. package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.js.map +1 -0
  116. package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.d.ts +25 -0
  117. package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.d.ts.map +1 -0
  118. package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.js +201 -0
  119. package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.js.map +1 -0
  120. package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.d.ts +18 -0
  121. package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.d.ts.map +1 -0
  122. package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.js +175 -0
  123. package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.js.map +1 -0
  124. package/dist/esm/languages/csharp/csharpSymbols.d.ts +33 -0
  125. package/dist/esm/languages/csharp/csharpSymbols.d.ts.map +1 -0
  126. package/dist/esm/languages/csharp/csharpSymbols.js +268 -0
  127. package/dist/esm/languages/csharp/csharpSymbols.js.map +1 -0
  128. package/dist/esm/mcp/cognitiveMap.d.ts +39 -10
  129. package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -1
  130. package/dist/esm/mcp/cognitiveMap.js +442 -25
  131. package/dist/esm/mcp/cognitiveMap.js.map +1 -1
  132. package/dist/esm/mcp/index.js +6 -0
  133. package/dist/esm/mcp/index.js.map +1 -1
  134. package/dist/esm/mcp/tools/analysis.d.ts.map +1 -1
  135. package/dist/esm/mcp/tools/analysis.js +9 -0
  136. package/dist/esm/mcp/tools/analysis.js.map +1 -1
  137. package/dist/esm/mcp/tools/codenav.d.ts.map +1 -1
  138. package/dist/esm/mcp/tools/codenav.js +46 -77
  139. package/dist/esm/mcp/tools/codenav.js.map +1 -1
  140. package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -1
  141. package/dist/esm/mcp/tools/context-tools.js +28 -0
  142. package/dist/esm/mcp/tools/context-tools.js.map +1 -1
  143. package/dist/esm/mcp/tools/depgraph.d.ts.map +1 -1
  144. package/dist/esm/mcp/tools/depgraph.js +15 -0
  145. package/dist/esm/mcp/tools/depgraph.js.map +1 -1
  146. package/dist/esm/mcp/tools/dev-utils.d.ts.map +1 -1
  147. package/dist/esm/mcp/tools/dev-utils.js +6 -0
  148. package/dist/esm/mcp/tools/dev-utils.js.map +1 -1
  149. package/dist/esm/mcp/tools/devtools.d.ts.map +1 -1
  150. package/dist/esm/mcp/tools/devtools.js +51 -39
  151. package/dist/esm/mcp/tools/devtools.js.map +1 -1
  152. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  153. package/dist/esm/mcp/tools/memory.js +10 -0
  154. package/dist/esm/mcp/tools/memory.js.map +1 -1
  155. package/dist/esm/mcp/tools/misc.d.ts.map +1 -1
  156. package/dist/esm/mcp/tools/misc.js +11 -0
  157. package/dist/esm/mcp/tools/misc.js.map +1 -1
  158. package/dist/esm/mcp/tools/refactor.d.ts.map +1 -1
  159. package/dist/esm/mcp/tools/refactor.js +9 -0
  160. package/dist/esm/mcp/tools/refactor.js.map +1 -1
  161. package/dist/esm/mcp/tools.d.ts +1 -0
  162. package/dist/esm/mcp/tools.d.ts.map +1 -1
  163. package/dist/esm/mcp/tools.js +45 -9
  164. package/dist/esm/mcp/tools.js.map +1 -1
  165. package/dist/esm/proxy/DebuggerState.d.ts +3 -0
  166. package/dist/esm/proxy/DebuggerState.d.ts.map +1 -0
  167. package/dist/esm/proxy/DebuggerState.js +14 -0
  168. package/dist/esm/proxy/DebuggerState.js.map +1 -0
  169. package/dist/esm/subconscious/TheBrainV2.d.ts +11 -0
  170. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  171. package/dist/esm/subconscious/TheBrainV2.js +8 -0
  172. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  173. package/dist/esm/utils/SearchCache.d.ts +2 -2
  174. package/dist/esm/utils/SearchCache.d.ts.map +1 -1
  175. package/dist/esm/utils/SearchCache.js +6 -6
  176. package/dist/esm/utils/SearchCache.js.map +1 -1
  177. package/dist/esm/utils/WorkspaceSearch.d.ts +3 -1
  178. package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
  179. package/dist/esm/utils/WorkspaceSearch.js +5 -2
  180. package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
  181. package/mcp-server.js +1 -1
  182. package/package.json +4 -2
  183. package/dashboard/dist/assets/index-Dh-whqJ7.js.map +0 -1
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FALLBACK_MESSAGE = void 0;
4
+ exports.getCapabilityMatrix = getCapabilityMatrix;
5
+ const UNIVERSAL_FULL = [
6
+ "read_workspace_file",
7
+ "write_workspace_file",
8
+ "create_workspace_file",
9
+ "list_workspace_dir",
10
+ "search_workspace",
11
+ "smart_file_slice",
12
+ "run_workspace_command",
13
+ "output_region",
14
+ "apply_workspace_patch",
15
+ "search_memory",
16
+ "get_memory",
17
+ "store_memory",
18
+ "cognitive_map",
19
+ "file_intent_index",
20
+ "get_project_onboarding",
21
+ ];
22
+ const TS_SEMANTIC_FULL = [
23
+ "get_ast_hologram",
24
+ "get_symbol_surgical_context",
25
+ "imports_skeleton_resolver",
26
+ "ast_flow_visualizer",
27
+ "surgical_ast_insert",
28
+ "validate_patch_sandbox",
29
+ "depgraph",
30
+ "affected_tests",
31
+ "refactor",
32
+ "refactor_rename",
33
+ "refactor_move",
34
+ "type_coverage_report",
35
+ "entropy_score",
36
+ "dead_export_necromancer",
37
+ "coupling_radar",
38
+ ];
39
+ /**
40
+ * Honest support table. Levels are upgraded by later phases as each capability
41
+ * actually lands (F2: csharp read-only; F3: validate) — never ahead of the code.
42
+ */
43
+ function getCapabilityMatrix(language) {
44
+ const matrix = {};
45
+ for (const tool of UNIVERSAL_FULL)
46
+ matrix[tool] = "full";
47
+ if (language === "typescript") {
48
+ for (const tool of TS_SEMANTIC_FULL)
49
+ matrix[tool] = "full";
50
+ return matrix;
51
+ }
52
+ if (language === "csharp") {
53
+ // Upgraded as capabilities land (F2: read-only tools via the dotnet adapter).
54
+ matrix.get_ast_hologram = "full";
55
+ matrix.get_symbol_surgical_context = "full";
56
+ matrix.depgraph = "partial";
57
+ matrix.validate_patch_sandbox = "partial";
58
+ for (const tool of TS_SEMANTIC_FULL) {
59
+ if (matrix[tool] === undefined)
60
+ matrix[tool] = "fallback";
61
+ }
62
+ return matrix;
63
+ }
64
+ for (const tool of TS_SEMANTIC_FULL)
65
+ matrix[tool] = "fallback";
66
+ return matrix;
67
+ }
68
+ exports.FALLBACK_MESSAGE = "This semantic tool is TypeScript-only today (support level: fallback). Nothing was modified. " +
69
+ "See capability_matrix for the current support level of your project language.";
70
+ //# sourceMappingURL=CapabilityMatrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CapabilityMatrix.js","sourceRoot":"","sources":["../../../../src/language-core/contracts/CapabilityMatrix.ts"],"names":[],"mappings":";;;AA8CA,kDAsBC;AA9DD,MAAM,cAAc,GAAG;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,uBAAuB;IACvB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,YAAY;IACZ,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,wBAAwB;CAChB,CAAC;AAEX,MAAM,gBAAgB,GAAG;IACvB,kBAAkB;IAClB,6BAA6B;IAC7B,2BAA2B;IAC3B,qBAAqB;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,UAAU;IACV,gBAAgB;IAChB,UAAU;IACV,iBAAiB;IACjB,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,yBAAyB;IACzB,gBAAgB;CACR,CAAC;AAEX;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,QAAyB;IAEzB,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,cAAc;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACzD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,gBAAgB;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC;QACjC,MAAM,CAAC,2BAA2B,GAAG,MAAM,CAAC;QAC5C,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,MAAM,CAAC,sBAAsB,GAAG,SAAS,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,gBAAgB;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,gBAAgB,GAC3B,+FAA+F;IAC/F,+EAA+E,CAAC"}
@@ -0,0 +1,17 @@
1
+ export type ProjectLanguage = "typescript" | "csharp" | "python" | "go" | "rust" | "unknown";
2
+ export interface ProjectDetection {
3
+ /** Primary language (most file evidence; ties break toward typescript). */
4
+ language: ProjectLanguage;
5
+ /** Every language with evidence in this repo (mixed repos report both). */
6
+ languages: ProjectLanguage[];
7
+ /** Human-readable evidence, capped (paths relative to root). */
8
+ evidence: string[];
9
+ /** Detected frameworks/TFMs, e.g. ["net8.0", "react"]. */
10
+ frameworks: string[];
11
+ }
12
+ /**
13
+ * Detect the project language from repo evidence (never from user declaration).
14
+ * Name-only scan + capped csproj reads: no content indexing, no LLM, no tokens.
15
+ */
16
+ export declare function detectProjectType(root?: string): ProjectDetection;
17
+ //# sourceMappingURL=detectProjectType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectProjectType.d.ts","sourceRoot":"","sources":["../../../../src/language-core/detection/detectProjectType.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,QAAQ,GACR,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,QAAQ,EAAE,eAAe,CAAC;IAC1B,2EAA2E;IAC3E,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAsDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,GAAE,MAAsB,GAC3B,gBAAgB,CAkFlB"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.detectProjectType = detectProjectType;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const MAX_SCAN_FILES = 200;
40
+ const MAX_EVIDENCE = 10;
41
+ const SKIP_DIRS = new Set([
42
+ "node_modules",
43
+ ".git",
44
+ "dist",
45
+ "build",
46
+ "bin",
47
+ "obj",
48
+ ".lemma",
49
+ "coverage",
50
+ ]);
51
+ function listFiles(root) {
52
+ const out = [];
53
+ const walk = (rel, depth) => {
54
+ if (depth > 3 || out.length >= MAX_SCAN_FILES)
55
+ return;
56
+ let entries;
57
+ try {
58
+ entries = fs.readdirSync(path.join(root, rel), { withFileTypes: true });
59
+ }
60
+ catch {
61
+ return;
62
+ }
63
+ for (const e of entries) {
64
+ if (SKIP_DIRS.has(e.name))
65
+ continue;
66
+ const r = rel ? `${rel}/${e.name}` : e.name;
67
+ if (e.isDirectory())
68
+ walk(r, depth + 1);
69
+ else {
70
+ out.push(r);
71
+ if (out.length >= MAX_SCAN_FILES)
72
+ return;
73
+ }
74
+ }
75
+ };
76
+ walk("", 0);
77
+ return out;
78
+ }
79
+ function readCapped(abs, maxBytes = 100000) {
80
+ try {
81
+ const st = fs.statSync(abs);
82
+ if (!st.isFile() || st.size > maxBytes)
83
+ return null;
84
+ return fs.readFileSync(abs, "utf8");
85
+ }
86
+ catch {
87
+ return null;
88
+ }
89
+ }
90
+ function pushEvidence(evidence, item) {
91
+ if (evidence.length < MAX_EVIDENCE && !evidence.includes(item))
92
+ evidence.push(item);
93
+ }
94
+ /**
95
+ * Detect the project language from repo evidence (never from user declaration).
96
+ * Name-only scan + capped csproj reads: no content indexing, no LLM, no tokens.
97
+ */
98
+ function detectProjectType(root = process.cwd()) {
99
+ const resolved = path.resolve(root);
100
+ const counts = {
101
+ typescript: 0,
102
+ csharp: 0,
103
+ python: 0,
104
+ go: 0,
105
+ rust: 0,
106
+ };
107
+ const evidence = [];
108
+ const frameworks = [];
109
+ const pushFramework = (f) => {
110
+ const norm = f.trim().toLowerCase();
111
+ if (norm && !frameworks.includes(norm))
112
+ frameworks.push(norm);
113
+ };
114
+ let files;
115
+ try {
116
+ files = listFiles(resolved);
117
+ }
118
+ catch {
119
+ files = [];
120
+ }
121
+ for (const rel of files) {
122
+ const lower = rel.toLowerCase();
123
+ if (lower.endsWith("tsconfig.json") || lower === "package.json") {
124
+ counts.typescript += 3;
125
+ pushEvidence(evidence, rel);
126
+ }
127
+ else if (/\.(ts|tsx|js|jsx|mjs|cjs)$/.test(lower)) {
128
+ counts.typescript += 1;
129
+ }
130
+ else if (lower.endsWith(".csproj")) {
131
+ counts.csharp += 3;
132
+ pushEvidence(evidence, rel);
133
+ const content = readCapped(path.join(resolved, rel));
134
+ if (content) {
135
+ const tfm = content.match(/<TargetFramework>\s*([^<]+?)\s*<\/TargetFramework>/i);
136
+ if (tfm)
137
+ pushFramework(tfm[1]);
138
+ const tfms = content.match(/<TargetFrameworks>\s*([^<]+?)\s*<\/TargetFrameworks>/i);
139
+ if (tfms)
140
+ tfms[1].split(";").forEach(pushFramework);
141
+ }
142
+ }
143
+ else if (lower.endsWith(".sln")) {
144
+ counts.csharp += 2;
145
+ pushEvidence(evidence, rel);
146
+ }
147
+ else if (lower.endsWith(".cs")) {
148
+ counts.csharp += 1;
149
+ }
150
+ else if (lower === "pyproject.toml" ||
151
+ lower === "setup.py" ||
152
+ lower.endsWith(".py")) {
153
+ counts.python += lower.endsWith(".py") ? 1 : 3;
154
+ if (!lower.endsWith(".py"))
155
+ pushEvidence(evidence, rel);
156
+ }
157
+ else if (lower === "go.mod" || lower.endsWith(".go")) {
158
+ counts.go += lower.endsWith(".go") ? 1 : 3;
159
+ if (!lower.endsWith(".go"))
160
+ pushEvidence(evidence, rel);
161
+ }
162
+ else if (lower === "cargo.toml" || lower.endsWith(".rs")) {
163
+ counts.rust += lower.endsWith(".rs") ? 1 : 3;
164
+ if (!lower.endsWith(".rs"))
165
+ pushEvidence(evidence, rel);
166
+ }
167
+ }
168
+ const order = [
169
+ "typescript",
170
+ "csharp",
171
+ "python",
172
+ "go",
173
+ "rust",
174
+ ];
175
+ const ranked = order
176
+ .filter((l) => counts[l] > 0)
177
+ .sort((a, b) => counts[b] - counts[a]);
178
+ // Tie-break toward typescript preserves pre-detection behavior for TS repos.
179
+ return {
180
+ language: ranked[0] ?? "unknown",
181
+ languages: ranked,
182
+ evidence,
183
+ frameworks,
184
+ };
185
+ }
186
+ //# sourceMappingURL=detectProjectType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectProjectType.js","sourceRoot":"","sources":["../../../../src/language-core/detection/detectProjectType.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type AdapterId = "typescript" | "dotnet";
2
+ /**
3
+ * File-aware routing. Returns "dotnet" only for C# files inside a repo with
4
+ * C# evidence; "typescript" for TS/JS files; null when nothing applies.
5
+ * Callers fall through to the legacy TypeScript path on anything but "dotnet",
6
+ * so TypeScript behavior is structurally unchanged.
7
+ */
8
+ export declare function resolveAdapterForFile(root: string, filePath: string): AdapterId | null;
9
+ /** Directory/repo-level routing (used by dir-scoped tools like hologram). */
10
+ export declare function resolveAdapterForProject(root: string): AdapterId | null;
11
+ //# sourceMappingURL=adapterRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapterRegistry.d.ts","sourceRoot":"","sources":["../../../../src/language-core/registry/adapterRegistry.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;AAKhD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,SAAS,GAAG,IAAI,CAalB;AAED,6EAA6E;AAC7E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CASvE"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveAdapterForFile = resolveAdapterForFile;
4
+ exports.resolveAdapterForProject = resolveAdapterForProject;
5
+ const detectProjectType_1 = require("../detection/detectProjectType");
6
+ const TS_EXT = /\.(ts|tsx|js|jsx|mjs|cjs)$/i;
7
+ const CS_EXT = /\.(cs|csproj|sln)$/i;
8
+ /**
9
+ * File-aware routing. Returns "dotnet" only for C# files inside a repo with
10
+ * C# evidence; "typescript" for TS/JS files; null when nothing applies.
11
+ * Callers fall through to the legacy TypeScript path on anything but "dotnet",
12
+ * so TypeScript behavior is structurally unchanged.
13
+ */
14
+ function resolveAdapterForFile(root, filePath) {
15
+ const lower = (filePath || "").toLowerCase();
16
+ if (CS_EXT.test(lower)) {
17
+ try {
18
+ const det = (0, detectProjectType_1.detectProjectType)(root);
19
+ if (det.languages.includes("csharp"))
20
+ return "dotnet";
21
+ }
22
+ catch {
23
+ // detection failed — fall through to legacy path
24
+ }
25
+ return null;
26
+ }
27
+ if (TS_EXT.test(lower))
28
+ return "typescript";
29
+ return null;
30
+ }
31
+ /** Directory/repo-level routing (used by dir-scoped tools like hologram). */
32
+ function resolveAdapterForProject(root) {
33
+ try {
34
+ const det = (0, detectProjectType_1.detectProjectType)(root);
35
+ if (det.language === "csharp")
36
+ return "dotnet";
37
+ if (det.language === "typescript")
38
+ return "typescript";
39
+ }
40
+ catch {
41
+ // fall through
42
+ }
43
+ return null;
44
+ }
45
+ //# sourceMappingURL=adapterRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapterRegistry.js","sourceRoot":"","sources":["../../../../src/language-core/registry/adapterRegistry.ts"],"names":[],"mappings":";;AAaA,sDAgBC;AAGD,4DASC;AAzCD,sEAAmE;AAInE,MAAM,MAAM,GAAG,6BAA6B,CAAC;AAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAErC;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,IAAY,EACZ,QAAgB;IAEhB,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAA,qCAAiB,EAAC,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,QAAQ,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,SAAgB,wBAAwB,CAAC,IAAY;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,qCAAiB,EAAC,IAAI,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/C,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY;YAAE,OAAO,YAAY,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface DotNetFileNode {
2
+ file: string;
3
+ namespaces: string[];
4
+ usings: string[];
5
+ /** Resolved edges: { via: using, to: file } */
6
+ resolved: Array<{
7
+ via: string;
8
+ to: string;
9
+ }>;
10
+ /** Usings with no in-repo declaration (System.*, xunit, …) — capped. */
11
+ unresolved: string[];
12
+ }
13
+ export declare function buildDotNetGraphMap(root: string): Map<string, DotNetFileNode>;
14
+ export interface DotNetGraphOptions {
15
+ reverse?: boolean;
16
+ depth?: number;
17
+ format?: string;
18
+ }
19
+ /**
20
+ * Using-based .NET dependency view. PARTIAL by design: namespace resolution is
21
+ * lexical (no Roslyn), external packages surface as `unresolved`, never as edges.
22
+ */
23
+ export declare function formatDotNetDepGraph(root: string, targetRel: string, opts?: DotNetGraphOptions): string;
24
+ //# sourceMappingURL=DotNetDependencyGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DotNetDependencyGraph.d.ts","sourceRoot":"","sources":["../../../../../src/languages/adapters/dotnet/DotNetDependencyGraph.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AA+BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA+C7E;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,kBAAuB,GAC5B,MAAM,CAuDR"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildDotNetGraphMap = buildDotNetGraphMap;
37
+ exports.formatDotNetDepGraph = formatDotNetDepGraph;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const csharpSymbols_1 = require("../../csharp/csharpSymbols");
41
+ const MAX_FILES = 500;
42
+ function listCsFiles(root) {
43
+ const out = [];
44
+ const walk = (dir, rel) => {
45
+ if (out.length >= MAX_FILES)
46
+ return;
47
+ let entries;
48
+ try {
49
+ entries = fs.readdirSync(dir, { withFileTypes: true });
50
+ }
51
+ catch {
52
+ return;
53
+ }
54
+ for (const e of entries) {
55
+ if (["node_modules", ".git", "bin", "obj", "dist", ".lemma"].includes(e.name))
56
+ continue;
57
+ const r = rel ? `${rel}/${e.name}` : e.name;
58
+ if (e.isDirectory())
59
+ walk(path.join(dir, e.name), r);
60
+ else if (e.name.toLowerCase().endsWith(".cs")) {
61
+ out.push(r);
62
+ if (out.length >= MAX_FILES)
63
+ return;
64
+ }
65
+ }
66
+ };
67
+ walk(root, "");
68
+ return out;
69
+ }
70
+ function buildDotNetGraphMap(root) {
71
+ const files = listCsFiles(root);
72
+ const map = new Map();
73
+ const nsToFiles = new Map();
74
+ const parsed = new Map();
75
+ for (const rel of files) {
76
+ let content;
77
+ try {
78
+ content = fs.readFileSync(path.join(root, rel), "utf8");
79
+ }
80
+ catch {
81
+ continue;
82
+ }
83
+ const syms = (0, csharpSymbols_1.parseCSharpFile)(content);
84
+ parsed.set(rel, syms);
85
+ for (const ns of syms.namespaces) {
86
+ const list = nsToFiles.get(ns) ?? [];
87
+ list.push(rel);
88
+ nsToFiles.set(ns, list);
89
+ }
90
+ }
91
+ for (const [rel, syms] of parsed) {
92
+ const node = {
93
+ file: rel,
94
+ namespaces: syms.namespaces,
95
+ usings: syms.usings,
96
+ resolved: [],
97
+ unresolved: [],
98
+ };
99
+ for (const using of syms.usings) {
100
+ const targets = (nsToFiles.get(using) ?? []).filter((f) => f !== rel);
101
+ if (targets.length > 0) {
102
+ for (const to of targets) {
103
+ if (!node.resolved.some((r) => r.to === to && r.via === using))
104
+ node.resolved.push({ via: using, to });
105
+ }
106
+ }
107
+ else if (!node.unresolved.includes(using) &&
108
+ node.unresolved.length < 20) {
109
+ node.unresolved.push(using);
110
+ }
111
+ }
112
+ map.set(rel, node);
113
+ }
114
+ return map;
115
+ }
116
+ function bfs(map, start, direction, maxDepth) {
117
+ const seen = new Map([[start, 0]]);
118
+ const queue = [start];
119
+ while (queue.length > 0) {
120
+ const cur = queue.shift();
121
+ const d = seen.get(cur);
122
+ if (d >= maxDepth)
123
+ continue;
124
+ const next = [];
125
+ if (direction === "forward") {
126
+ const node = map.get(cur);
127
+ if (node)
128
+ for (const r of node.resolved)
129
+ next.push(r.to);
130
+ }
131
+ else {
132
+ for (const [file, node] of map) {
133
+ if (node.resolved.some((r) => r.to === cur))
134
+ next.push(file);
135
+ }
136
+ }
137
+ for (const n of next) {
138
+ if (!seen.has(n)) {
139
+ seen.set(n, d + 1);
140
+ queue.push(n);
141
+ }
142
+ }
143
+ }
144
+ return seen;
145
+ }
146
+ /**
147
+ * Using-based .NET dependency view. PARTIAL by design: namespace resolution is
148
+ * lexical (no Roslyn), external packages surface as `unresolved`, never as edges.
149
+ */
150
+ function formatDotNetDepGraph(root, targetRel, opts = {}) {
151
+ const map = buildDotNetGraphMap(root);
152
+ const node = map.get(targetRel);
153
+ if (!node) {
154
+ return `File not found in .NET workspace graph: ${targetRel}\nCheck path is correct and has a .cs extension.`;
155
+ }
156
+ const depth = Math.min(Math.max(opts.depth ?? 1, 1), 5);
157
+ const reverse = opts.reverse !== false;
158
+ const forward = bfs(map, targetRel, "forward", depth);
159
+ const backward = reverse
160
+ ? bfs(map, targetRel, "backward", depth)
161
+ : new Map();
162
+ if (opts.format === "json") {
163
+ return JSON.stringify({
164
+ target: targetRel,
165
+ language: "dotnet",
166
+ partial: true,
167
+ dependsOn: [...forward.keys()].filter((f) => f !== targetRel),
168
+ dependedOnBy: [...backward.keys()].filter((f) => f !== targetRel),
169
+ unresolvedUsings: node.unresolved,
170
+ }, null, 2);
171
+ }
172
+ const lines = [
173
+ `### .NET dependency graph for \`${targetRel}\` (partial: using-based, depth ${depth})`,
174
+ `\nDepends on (${forward.size - 1}):`,
175
+ ];
176
+ for (const [file, d] of [...forward.entries()]
177
+ .filter(([f]) => f !== targetRel)
178
+ .sort((a, b) => a[1] - b[1])) {
179
+ const via = map
180
+ .get(targetRel)
181
+ ?.resolved.filter((r) => r.to === file)
182
+ .map((r) => r.via)
183
+ .join(", ");
184
+ lines.push(` - ${file} (depth ${d}${via ? ` via ${via}` : ""})`);
185
+ }
186
+ if (reverse) {
187
+ lines.push(`\nDepended on by (${backward.size - 1}):`);
188
+ for (const [file, d] of [...backward.entries()]
189
+ .filter(([f]) => f !== targetRel)
190
+ .sort((a, b) => a[1] - b[1])) {
191
+ lines.push(` - ${file} (depth ${d})`);
192
+ }
193
+ }
194
+ if (node.unresolved.length > 0) {
195
+ lines.push(`\nUnresolved usings (external packages / framework, not edges): ${node.unresolved.join(", ")}`);
196
+ }
197
+ return lines.join("\n");
198
+ }
199
+ //# sourceMappingURL=DotNetDependencyGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DotNetDependencyGraph.js","sourceRoot":"","sources":["../../../../../src/languages/adapters/dotnet/DotNetDependencyGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export declare const DOTNET_SUPPORT: {
2
+ readonly get_ast_hologram: "full";
3
+ readonly get_symbol_surgical_context: "full";
4
+ readonly depgraph: "partial";
5
+ readonly validate_patch_sandbox: "partial";
6
+ readonly refactor: "fallback";
7
+ readonly refactor_rename: "fallback";
8
+ readonly refactor_move: "fallback";
9
+ readonly surgical_ast_insert: "fallback";
10
+ readonly type_coverage_report: "fallback";
11
+ readonly entropy_score: "fallback";
12
+ };
13
+ /** True when this file/dir target should be served by the .NET adapter. */
14
+ export declare function isDotNetTarget(root: string, fileOrDir: string): boolean;
15
+ export declare function dotNetHologramResult(root: string, dirRel: string): {
16
+ content: Array<{
17
+ type: string;
18
+ text: string;
19
+ }>;
20
+ };
21
+ export declare function dotNetSurgicalResult(root: string, filePath: string, symbolName: string): {
22
+ content: Array<{
23
+ type: string;
24
+ text: string;
25
+ }>;
26
+ };
27
+ export declare function dotNetDepgraphResult(root: string, filePath: string, opts: {
28
+ reverse?: boolean;
29
+ depth?: number;
30
+ format?: string;
31
+ }): {
32
+ content: Array<{
33
+ type: string;
34
+ text: string;
35
+ }>;
36
+ };
37
+ //# sourceMappingURL=DotNetLanguageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DotNetLanguageAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/languages/adapters/dotnet/DotNetLanguageAdapter.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc;;;;;;;;;;;CAWjB,CAAC;AAEX,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAKvE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAIpD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAMpD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAMpD"}